-
Notifications
You must be signed in to change notification settings - Fork 0
golang tips
foolmacky edited this page Aug 29, 2021
·
10 revisions
- interface{}は実体は型情報と、データの実体or実体へのポインタの2つの値しか持っていない
- 値が入るのか、ポインタが入るのかは、実体データの型によって異なる
intならデータが入る。structは実体へのポインタが格納される
なので、deep copyしてもあまり気にしなくても大丈夫
- 値を更新したときにどうなるのかは、
https://www.slideshare.net/takuyaueda967/go-77689475
正規バージョンではなく、特定のコミットを使いたい場合の指定について
- 特定のコミット指定をgo.modに記入するのは面倒くさい。その場合はgo getでコミットhashタグを指定して取得するとgo.modを自動で更新してくれる
go get \<リポジトリ\>@\<hashタグ\>
- versionタグを付与していないパッケージの場合 go.modの記載ver.は通常v0.0.0-TIMESTAMP-hashだが、途中までver.タグが付与されていると必ずしもそうではない。go getしてgoに書き換えてもらうのが良い。
- 利用しているライブラリがリポジトリ移動した場合のエラー
module declared its path as < new repository>
but was requires as < old repository>
- 参照しているソース自体、タグを含めて新しいリポジトリに移動していたとしても、そのタグが保持しているgo.modに古いリポジトリが設定されているとこのエラーが出る
- 使うバージョンをgo.modも新しいリポジトリを指しているものに更新する