Edited at

Go 1.12のmodulesを試す


はじめに

 久々にgolangを触ったら、バージョンが1.12になっていて、標準でバージョン管理機構が備わったとのことでしたので試してみました。


環境

バージョン

OS
macOS 10.14.3

golang
1.12


手順



  1. 環境変数にGO111MODULE=onを追加する。1.13ではデフォルトでonになる、とのこと


    .bash_profile

    # 以下を追加
    
    export GO111MODULE=on




  2. プロジェクトディレクトリを作る

    $ source ~/.bash_profile
    
    $ mkdir sample
    $ cd sample



  3. モジュール管理ファイルを用意する

    $ go mod init sample
    


    • 上記を実行すると、新たに go.mod が生成される

    • 生成するバイナリは、ここで指定した名前になる(今回は"sample")




  4. コードを書く(以下はサンプル)


    main.go

    package main

    import (
    "fmt"
    "golang.org/x/text/width"
    )

    func main() {
    // 半角文字を全角文字にするプログラム
    text := "123XYZ"
    fmt.Println("半角:", text)
    fmt.Println("全角:", width.Widen.String(text))
    }





  5. 依存するモジュールをダウンロードする

    $ go get golang.org/x/text/width
    


    • 上記を実行すると、新たにgo.sumが生成され、go.modに依存関係が追記される

    • この手順を飛ばすことも可能(go buildで自動的に行われる)




  6. ビルド & 実行する

    $ go build
    
    $ ./sample
    半角: 123XYZ
    全角: 123XYZ



感想

 個人的に、あまり環境をいじるのが好きでない為、この手のツールを標準で用意してもらえるのは大変嬉しいです。仕組みがあまり複雑でない点も好みです。