Goの基本構文
パッケージ
GoにはパッケージというRustでいうcrateの機能が存在する。
package calc_math
import {
"math"
}このpackageが定義したファイルのエイリアスとなる。
例えば上記のcalc_mathをimportする場合、
package main
import {
calc_math "アプリ名/mod/プロジェクトルートからのファイルパス"
fibonacci_rest_api "example.com/mod/lib/features/fibonacci_rest_api/entities"
}となる。
関数
Goでは関数を定義する際にfuncから始める。
func square(i int) (int) {
return i * i
}他にも引数が複数あり、その型が同一な場合このように書くこともできる。
func square(x, y int) int {
return x * y
}そして関数は複数の値を返すこともできる。
func calc(x, y int) (int, int){
return x + y, x - y
}変数宣言
Goでは変数宣言にvarキーワードを使用する。
var i = 32関数内では:=という変数宣言と代入を同時に記述できる演算子を使用可能。
func main() {
x := 64
y := 32
var z = 16 //通常の宣言も使用可能
}定数宣言
定数宣言にはconstキーワードを使用する。
ただし、宣言する型について制限があり、char、string、boolean、数値のみである。:=演算子は使用不能。
const HelloWorld = "HELLO WORLD"条件分岐
if
Goでもifは他の言語と同様な記述法である。
import "fmt"
var i = 32
if i == 64 {
fmt.Println("i is 64")
} else {
fmt.Println("i is not 64")
}ただ、他の言語と違う点として、評価式の前に簡単な文を入れることが可能。
import "fmt"
if i:=64; i == 64 {
fmt.Println("i is 64")
} else {
fmt.Println("i is not 64")
}switch
GoでのswitchはCなどとは違ってbreakを書かずともマッチしたcaseのみを実行する。
i := 32
switch i {
case 2:
return "This is 2"
case 4:
return "This is 4"
default:
return "I dont Know"
}for
Goのforは他の言語とほぼ同様である。
func main(){
sum := 0
for i := 0; i < 5; i++ {
sum += i
}
fmt.Println(sum)
}