概要
github の golang ライブラリやら手元の自分で作ったライブラリやらをどうすれば使えるのか ChatGPT に聞いて動かしてみた結果をまとめる
REF (昔話)
環境
PC:M1 Macbook Sonoma
> go version
go version go1.23.5 darwin/arm64
作業ディレクトリは gomod_exam
>
はプロンプト
ディレクトリ階層
gomod_exam > tree .
.
├── main.go
└── mylib
└── sample.go
2 directories, 2 files
サンプルコード
main.go
package main
import "github.com/howeyc/crc16"
import "gomod_exam/mylib"
func main() {
str := mylib.RetHoge()
println(str)
println(crc16.ChecksumCCITTFalse([]byte(str)))
}
mylib/sample.go
package mylib
var (RetHoge = func() string {
return "hoge"
})
簡単な説明
プログラム自体は特定の文字列に対してCRC計算を行う
この際、CRC計算ライブラリ(package)が github 上にある
また、 github 上の公開 package だけでなく、自作の package も同じプログラム内に存在する(状態を考える)
結論
公開 package + 自作 package の場合
1 go mod init
gomod_exam > go mod init gomod_exam
go: creating new go.mod: module gomod_exam
go: to add module requirements and sums:
go mod tidy
2 go mod tidy
gomod_exam > go mod tidy
go: finding module for package github.com/howeyc/crc16
go: found github.com/howeyc/crc16 in github.com/howeyc/crc16 v0.0.0-20171223171357-2b2a61e366a6
3 go run
gomod_exam > go run main.go
hoge
16693
4
gomod_exam > tree
.
├── go.mod
├── go.sum
├── main.go
└── mylib
└── sample.go
2 directories, 4 files
gomod_exam > cat go.mod
module gomod_exam
go 1.23.5
require github.com/howeyc/crc16 v0.0.0-20171223171357-2b2a61e366a6
gomod_exam > cat go.sum
github.com/howeyc/crc16 v0.0.0-20171223171357-2b2a61e366a6 h1:IIVxLyDUYErC950b8kecjoqDet8P5S4lcVRUOM6rdkU=
github.com/howeyc/crc16 v0.0.0-20171223171357-2b2a61e366a6/go.mod h1:JslaLRrzGsOKJgFEPBP65Whn+rdwDQSk0I0MCRFe2Zw=
自作 package のみの場合
main.go
package main
//import "github.com/howeyc/crc16"
import "gomod_exam/mylib"
func main() {
str := mylib.RetHoge()
println(str)
// println(crc16.ChecksumCCITTFalse([]byte(str)))
}
1 go mod init
gomod_exam > go mod init gomod_exam
go: creating new go.mod: module gomod_exam
go: to add module requirements and sums:
go mod tidy
2 go run
gomod_exam > go run main.go
hoge
3
gomod_exam > tree
.
├── go.mod
├── main.go
└── mylib
└── sample.go
2 directories, 3 files
gomod_exam > cat go.mod
module gomod_exam
go 1.23.5
tidy は不要