はじめに
業務でGoを使うことになったので備忘録としてメモ
インストール
Mac環境なのでHomebrewを使う
$ brew update
$ brew upgrade
$ brew install go
インストールされているか確認
$ go version
パスを確認
$ go env GOPATH
Hello world
package main
import "fmt"
func main() {
fmt.Println("Hello world")
}
runでファイルをそのまま実行
$ go run hello-world.go
buildでバイナリを生成することでバイナリを直接実行できる
$ go build hello-world.go
$ ./hello-world
変数
変数 は var 変数名 型名で宣言
var hoge int
初期値を設定することも可能
var hoge int = 1
初期値を設定する際は var と型を省略することが可能
hoge := 1
まとめて定義もできる
var (
hoge int = 1
fuga string = "1"
)
定数
定数 const 変数名 型名で宣言
const hoge int = 1
型名を省力することができるのは var と同じ
演算子
| 1 | 2 |
|---|---|
| + | 加算 |
| - | 減算 |
| * | 乗算 |
| / | 除算 |
| % | 余り |
| & | AND |
| | | OR |
| ^ | XOR |
| x++ | インクリメント |
| x-- | デクリメント |
| && | AかつB |
| || | AまたはB |
| !x | NOT |
| == | 等しい |
| != | 等しくない |
| < | AがBより大きい |
| <= | AがB以上 |
| > | AがBより小さい |
| >= | AがB以下 |
配列
個数と型名を宣言して設定する
x := [3]string{"hoge", "guga", "bar"}
個数が決まっていないもの(初期化時に決定)に対しては個数を省力する
y := [...]string{"hoge", "guga", "bar"}
IF文
if 条件 { 処理 }
if x > a {
fmt.Println(x)
}
else や else if は以下
if x > y {
fmt.Println("hoge")
} else if x < y {
fmt.Println("fuga")
} else {
fmt.Println("hogefuga")
}
Switch文
switch cnt {
case 1:
return "1回目"
case 2:
return "2回目"
default:
return "不明"
}
caseで条件分岐させる場合は
switch {
case x > y:
return "hoge"
case x < y:
return "fuga"
default:
return "default"
}
For文
for 開始処理; 条件; 後処理
for i := 0; i < 10; i++ {
fmt.Println(i)
}
開始処理や後処理を省力することができる
for x < y {
x++
}
まとめ
とりあえず基礎的なところから