Carpe Diem

備忘録

2020-12-01から1ヶ月間の記事一覧

ポインタを図で理解する

Go

概要 Goのポインタを図で理解することで ダブルポインタとは Goは全て値渡し ポインタレシーバと値レシーバの違い がどういうことかを理解でき、参照渡しの時に x = y だと更新されず *x = *y だと更新される理由が分かります。

structのメモリ割り当て

Go

概要 Goにおけるstructのメモリ構造を知ることでフィールド順序に対する意識が変わったり、なぜunsafe.Sizeof(string)が16bytesでunsafe.Sizeof(slice)が24bytesになるかが理解できます。 環境 Go 1.15.6 darwin 20.1.0 x86_64 各型のメモリ割り当て unsafe.…

GoでShutdown Hook

Go

背景 以前Graceful shutdown機能の使い方を紹介しました。 christina04.hatenablog.com これによって処理途中のリクエストが残っていても、きちんと完了するまで待ってからプロセスを終了してくれます。 しかしPubSubのPublish()のような非同期処理であれば…