春休み中にWeb開発がしたいので、ずっと積読していたプログラミング言語Goという書籍を読んで、練習問題等もやっていたのですが、練習問題2.1あたりで少し問題が出ました。
それはimportにおいて、相対パス指定した際にモジュールが読み込めないというエラーです。
相対パス指定はどうやら非推奨のようで、
go mod init [モジュール名]
等でgo.modファイルを作成して、importする際も
import "モジュール名/読み込みたいパッケージ名"
のようにするとうまくいきました。 詳しくは下のようなページを見た方が分かりやすいと思われます。
プログラミング言語のサンプルプログラムのgopl.io/ch2/cf/main.goではimportにおいて
import( (省略) "gopl.io/ch2/tempconv" )
というように相対パスを使っていましたので、私の環境においてmoduleが読み込めないというエラーを吐かれました。 これを修正するにはまず、ch2ディレクトリに移動して
#mainでも何でもいい go mod init main
を打って、go.modを作ります。次に、cf/main.goでimport部分を
import ( "ch2/tempconv" "fmt" "os" "strconv" )
にすると動くようになります。
環境($GOPATH)によっては相対パスでも読み込めるかもしれませんが、相対パスが非推奨とされている以上、このサンプルコードも修正されてほしいなと思いました。 もし同じ本の同じコードでエラー吐いた方がおられ、このページに辿り付けた方がいれば、参考になればと思います。