s
が定義されている場所がわかりません。達人は教えてくれない。k
私が得るのは「識別子のオブジェクトがありません」だけですが、その横にある権利について知っています。リンクされたコードの典型的なスニペットを次に示します。
func getIndexAndRemainder(k uint64) (uint64, uint64) {
return k / s, k % s
}
変数名が 1 文字であるため、grep が難しくなります。私は通常の容疑者を探しました: var s uint64
、s := ...
、そして何もありません。明らかに、どこかで定義されたグローバル値である必要があります。
これにより、2 つの質問が残ります。
- どこ
s
から来ていますか? - ここで質問せずにどうやってそれを見つけることができますか?
編集:これにつまずいた他の人のために。
/some/path/src の下に git クローンを配置し、/some/path に設定することによって、適切な Go ワークスペースの下でパッケージのソースをチェックアウトしなかったため、Guru は私を失敗させましたGOPATH
。GOPATH=. guru definition s
そのため、うまくいくと思っていましたGOPATH
が、無視されました。guru はファイル内にあるので見つけるk
ことができましたが、他のファイルを調べる方法がわかりませんでした。
私のgrep失敗の原因const
は、単純=
ではなく:=
. 今後grepするときにこれを覚えています。