はじめに
こんにちは。某学校でプログラミング等の勉強中のサーバーサイドのプログラマーのワタタクです。
さて今回は「Go言語を真剣に勉強してみた〜基本構文編〜」と」言うことなのですが、記事が長ったらしくなる為何回かに分けて出来たらなと思います。
では、早速いってみましょう
変数
変数は以下のとうりで宣言します。
*ちなみにGo言語ではセミコロン(;)はいりません!!
var 変数名 データ型
またこのような書き方もあります。
var 変数名 = 初期値
さらにこのような書き方もできます。
変数名 := 初期値
3番目の記述方法が多く使われていて、参考書とかもこの書き方が多い。
var a int
a = 10
var b = 20
b := 20 //上のvar b = 20と意味は同じ。
定数
定数は以下のように記述します。
const 定数名 = 初期値
定数も変数と同じく肩指定できるが、通常は型を指定しません。
定数の連番定義
定数ジェネレータの iota を使用すると、連番からなる定数を簡単に定義することができます。
const (
_ = iota //=> 0
FAST //=> 1
NORMAL //=> 2
SLOW //=> 3
)
条件分岐
1)if文
if 条件式 {
//処理
} else if 条件式 {
//処理
} else {
//処理
}
a := 22
if a > 20 {
fmt.Println("成人")
} else {
fmt.Println("子供")
}
このように他の言語と同じくelse ifがなかったりelseがない場合は書かなくていい。
2)switch文
switch 条件の値 {
case 値1:
//処理
case 値2:
//処理
case 値3:
//処理
・
・
・
default:
//処理
}
また以下の例みたいにcaseの値を式にも出来ます。その場合、条件の値のところには何も記述しません。
*CやJavaなどのswitch文は,1つのcaseが実行されるとその次のcaseに処理が移るため,単一のcaseの実行で終わらせたい場合に,caseごとにbreakを書く必要がありました。しかしGoのswitch文では,caseが1つ実行されると次のcaseに実行が移ることなくswitch文が終了するため,breakをいちいち書く必要はありません。
ただ,caseの処理が終わったあとに,次のcaseに処理を進めたい場合もあります。そうした場合はcase内にfallthroughを書くことで,明示的に次のcaseに処理を進めることができます。
n := 10
switch {
case n % 15 == 0:
fmt.Println("FizzBuzz")
case n % 5 == 0:
fmt.Println("Buzz")
case n % 3 == 0:
fmt.Println("Fizz")
default:
fmt.Println(n)
}
ループ処理
*Goでのループはwhile文がなくfor文のみ。
for 初期値; 条件式; 初期値をどうする? {
//処理
}
for i := 1; i < 10; i++ {
if i % 2 == 0 {
continue
}
fmt.Println(i)//1,3,5,7,9
}
他の言語と同じくbreak文やcontinue文も使える。
無限ループ
無限ループを作る場合は以下の通り
for ;; {}
条件を適切に扱う必要がある。
以下例
for value := 0;; {
value++
fmt.Println(value)//1,2,3,4,5,6
if value % 6 == 0 {
break
}
}
}
以上。
もし何か間違っている等のご指摘があればご連絡ください。
最後まで読んで頂きありがとうございました。
次回は「Go言語を真剣に勉強してみた〜基本構文編②(配列)〜」です。
よろしければ、Go言語を真剣に勉強してみた〜環境構築編〜もご覧ください。