はじめに
業務で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++
}
まとめ
とりあえず基礎的なところから