ブックマーク / stop-the-world.hatenablog.com (1)

  • Goで構造体の非公開フィールドにアクセスする方法 - stop-the-world

    Go の 構造体 (struct) におけるフィールドは、フィールド名が小文字始まりであれば 非公開フィールド (unexported field) となり、パッケージ外からアクセスすることができません(参考: Exported identifiers - The Go Programming Language Specification)。 組織内で管理しているソースコードなら単に修正してしまえばよいのですが、外部のライブラリなどの場合、変更してもらうのは大変です。 このような、やむを得ない理由で非公開フィールドを参照したい場合、ちょっとした工夫が必要になります。 試してみたところ、以下の2つの方法で非公開フィールドを取り出すことができました。 reflect.ValueOf と unsafe.Pointer を使う方法 go.mod でモジュールを replace する方法 1. re

    Goで構造体の非公開フィールドにアクセスする方法 - stop-the-world
    yfnt
    yfnt 2020/01/07
  • 1