September 2022
Beginner to intermediate
464 pages
6h 52m
Japanese
unsafe、cgo「世界の果て」は怖いものです。古代の地図では、未踏の地をドラゴンやライオンの絵で埋めていました。さて、これまでの章ではGoが安全な言語であることを強調してきました。型付きの変数でデータの種類を明示し、ガベージコレクションによってメモリを管理します。ポインタでさえきちんと管理されており、CやC++のような変則的な使い方はできません。
開発者が書くGoコードの大部分においては、Goのランタイムが開発者を守ってくれます。しかし、「脱出用ハッチ」はあります。ときには微妙な領域に踏み込む必要があるかもしれないのです。
この章では、通常のGoのコードでは解決できないような状況に対処する方法を見ていきましょう。次の3つのツールを使います。
reflect——データの型がコンパイル時に決定できない場合unsafe——データがメモリ上にどうレイアウトされるかを意識して何かを行う必要がある場合cgo——C言語で書かれたライブラリを使いたい場合このようなある意味高度なテクニックを、初めてGo言語を使う人が読むかもしれない本に掲載する意味があるのか、疑問に思う人がいるかもしれません。筆者が取り上げることにした理由は次の2つです。
Go言語について、静的に型付けされているという点が気に入っている開発者は少なくないでしょう。Goで変数や型、関数を宣言するのは基本的に単純明快で、型、変数、関数が必要なときに、それを定義すればよいのです( ...
Read now
Unlock full access