0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ChatGPT に聞いてみた】go mod を理解せず package を動かす

Posted at

概要

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 は不要

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?