takuroooのブログ

勉強したこととか

golang

1リポジトリに複数go.modがある場合どうやって各モジュールに異なるバージョンを付与するか

[追記] 公式ドキュメントに解説が書いてあったので英語読める人はこちらを読んでください。 go.dev 前置き やり方 実験したリポジトリ 前置き 1つのGitHubのリポジトリにgo.modが1つある場合、そのモジュールのバージョン = gitのタグになる。 gitのタグでv1…

Go go.modのモジュール名がGitHubのリポジトリと一致しないものをimportしようとするとどうなるのか

importできません。 目次 目次 呼び出される側のモジュールを作る 呼び出す側を作る まとめ 呼び出される側のモジュールを作る GitHubでgo-helloworldというリポジトリを作る。 このリポジトリをcloneしてgo mod init helloworldを実行するとgo.modが生成さ…

Go JSONをデコードする

jsonパッケージのDecoderを使うとjsonデータを簡単にパースできる。 golang.org 目次 目次 変数名で対応付ける 構造体タグ名で対応付ける 一致しないkeyがあったときにエラーを返す 変数名で対応付ける package main import ( "encoding/json" "fmt" "string…

Go シグナルをチャネルで受け取る

golang.org signal.Notifyを使うとチャネルでシグナルを受け取ることができる。 package main import ( "fmt" "os" "os/signal" "syscall" ) func main() { sigCh := make(chan os.Signal) signal.Notify(sigCh, syscall.SIGINT) s := <-sigCh fmt.Printf("%…

Go path/filepathでファイルパスを操作する

パス名の操作に便利なfilepathを触って見たのでまとめていく。 golang.org 目次 目次 filepath.Abs filepath.Base filepath.Clean filepath.Dir filepath.EvalSymlinks filepath.Ext filepath.Glob filepath.Join filepath.Match filepath.Rel filepath.Spli…

Go strings/Reader

strings.Readerを触ってみた。 golang.org 目次 目次 NewReader Read ReadAt ReadByte Reset Len/Size Seek NewReader strings.Readerのポインタを生成する。 reader := strings.NewReader("abcdef") fmt.Printf("%T %v\n", reader, reader) // *strings.Rea…

Go stringsで文字列を操作する

Goの文字列操作を勉強したのでそのまとめ。 目次 目次 大文字小文字変換 タイトルケースに変換 文字列を比較 文字列の中に特定の文字列が存在するか 指定した文字数をカウント 空白文字でsplit 先頭/終端文字列の一致確認 文字列のインデックスを取得 slice…

GoのArrayとSliceの違い

先週からGoを勉強し始めた。 blog.golang.org ArrayとSliceがいまいちわからなかったが、この記事を読んでArrayとSliceの違いを学んだので自分なりにまとめてみる。 目次 目次 ArrayとSliceの違い(記事を読む前の認識) Array Array型とはなにか Array型の…