Goに入門したので、メモに残す意味で記事にしました。
手っ取り早いのでDocker, Docker Composeで準備します。
FROM golang:latest
ARG WORKDIR=/home/docker/work
WORKDIR $WORKDIR
ADD . $WORKDIR
version: '3.8'
services:
go:
build:
context: ./
dockerfile: Dockerfile
volumes:
- .:/home/docker/work/
下記コマンドで起動します。
$ docker-compose run go bash
とりあえずHello Worldを表示します。
package main
func main() {
println("Hello World!")
}
goを実行するのにgo.mod
ファイルが必要見たいです、
Githubのレポジトリを指定するのが普通みたいですが、
一旦チュートリアルにあるexample/helloを指定します。
下記コマンドでgo.mod
ファイルを作成します。
$ go mod init example/hello
作成ができたらHello World を表示してみます。
$ go run .
Hello World!
環境構築はこのくらいでしょうか。
var 変数名 データ型
// 変数宣言と同時に代入もできます
var 変数名 データ型 = 値
// 宣言と同時に代入する場合は型の省略ができます
var 変数名 = 値
// さらに上の書き方の場合はvarを省略して以下のように書けます
変数名 := 値
例
var msg string
msg = "msg 1"
var msg2 string = "msg 2"
number := 100
// number = number + 20 を省略すると
number += 20
# インクリメント
number++
# ディクリメント
number--
変数名 := [要素数]データ型{ 要素 }
// 要素数は省力が可能
例
names := []string{"name1", "name2", "name3"}
if 条件式 {
・・・
} else if 条件式 {
・・・
} else {
・・・
}
「また」や「かつ」はそれぞれ ||
, &&
を使います。
「否定」を表す時は !
をつけます。
例
number := 100
println(50 <= number && number <= 120) // true
println(number < 0 || 1 < number) // true
println(!(number < 0)) // true
if と同じことがswichで書けます。
number := 100
swich number {
case 0:
// number が 0 の時の処理
case 10, 50:
// number が 10または50の時の処理
default:
// 上記以外の時の処理
}
for 値の初期化; 条件; 値の更新 {
}
例
for i := 1; i < 6; i++ {
println(i)
}
range関数を使うことで配列とインデックスの両方を取得できます。
names := []string{"name1", "name2", "name3"}
for i, name := range names {
println(i, name)
}