tanish-kr's learning log

Learning output log

Go

概要とインストール

概要

Google製のプログラミング言語。Goは、静的型付け、C言語の伝統に則ったコンパイル言語、メモリ安全性、ガベージコレクション、構造的型付け、CSPスタイルの並行性などの特徴を持つ。

インストール

  • anyenvがすでにインストール済み - goenvを利用
$ anyenv install goenv
$ goenv install --list
$ goenv install 1.11.2
$ goenv global 1.11.2
$ go --help

動作確認

  • ディレクトリを作成(パッケージのルートディレクトリとなる)
$ mkdir sample-go
  • main.go
package main

import "fmt"

func main() {
	fmt.Printf("hello world\n")
}
  • build
$ cd sample-go
$ go build
  • run
$ ./sample-go

コーディング規約

以下のコマンドで自動で整形してくれる

$ go fmt main.go

整形結果だけ見たい場合

$ gofmt main.go
  • インデントにはスペースではなく、タブを使用する
  • 演算子の前後にスペースを入れない。演算子の優先順位を明確にするときのみスペースを入れる。その代り余計なカッコを入れない
x<<8 + y<<16
x, y = y, x+y

命名規則

  • 公開メソッド、フィールド: UpperCase
  • 非公開メソッド、フィールド: lowerCase
  • コンストラクタ : NewStructure

環境変数の確認

go envコマンドを使用する

ワークスペースの構成

GOPATHの設定

GOPATHはワークスペースのルートを指定する環境変数。

.bashrc.zshrcGOPATHを設定しておく。

export GOPATH=$HOME/.go
  • ディレクトリ構成
$GOPATH/
|-- bin
|-- pkg
`-- src
    `-- github.com
  • src: ソースコードを保持
  • bin: 実行可能プログラムを保持
  • pkg: ビルドツールがコンパイルされたパッケージを保持

パッケージのダウンロード

go get コマンドでパッケージをダウンロードする

Effective Go