いろんな言語の雰囲気だけ感じてみたい。GO言語の基本的な書き方編
目次
こんにちは、松浦です。
ど文系のわたしが思い切って転職してエンジニアになり、開発を始めて1年が過ぎました。
プロジェクトによって、使用するプログラミング言語がJavaだったり、PHPだったり、VBAだったり・・・で、Javaを書きながら「あ! これPHPでの書き方だった! 間違えたー!」ってなることがあります。
・・・そんな時のわたしはちょっとドヤってたりします。
「複数の言語知っててつい出ちゃうわたしかっこいい(`・ω・´)どやっ」って。
知ってる言語をさらに増やしたい!
そして「あの言語ねー、知ってるーー○○だよねーー」って言いたい。
横着してお手軽に増やしたい! ので今回は環境構築も行わず、オンライン実行環境で試しつつ、GO言語の基本的な書き方をお勉強してみました。
「あ、ごめん今ちょっとフランス語出ちゃった(笑)」みたいな感覚でぽろっとGO言語でちゃうかもしれない。
Go言語とは
- 2009年にGoogleが発表したプログラミング言語
- 他の言語が持つような機能を削り、シンプル
- 関数が複数の戻り値を返せる
- 並行処理をサポート
- ポインタを意識する必要がある
- 公式キャラクターが可愛くて人気
Google様の言語ってだけでもかっこいい気がしませんか。
キャラクターのゴーファーくん、ほんとかわいいのでTシャツにして着て、それなに? って聞かれたら「Go言語だよ(笑)」ってドヤ顔で答えたい。
今回書いてみるのはこちら
- 変数
- IF文
- For文
- 複数の戻り値を返す関数
この辺りができれば「GO言語ってさー!」といえるはず(わたし基準)
雰囲気がわかればそれでよいのです。
オンライン開発環境は、paiza.ioを愛用してます。
GO言語を含め25言語も使えちゃいます、素晴らしいです。
変数
package main import "fmt" func main() { // 基本の書き方 var KihonNum int KihonNum = 917 var KihonStr string = "yummy" fmt.Println("KihonNum:", KihonNum) fmt.Println("KihonStr:", KihonStr) // 型は省略しても察してくれる var syoryakuNum = 31 syoryakuNum = syoryakuNum + 9 var syoryakuStr = "cat" syoryakuStr = syoryakuStr + "9" fmt.Println("syoryakuNum:", syoryakuNum) fmt.Println("syoryakuStr:", syoryakuStr) // さらに省略できたりする ryNum := 5; ryStr := "choco" fmt.Println("ryNum:", ryNum) fmt.Println("ryStr:", ryStr) }
実行結果:
数値と文字列で3パターンずつ書いてみました。
- 基本形
- var 変数名 型 = 初期値
- 省略形
- var 変数名 = 初期値
- さらに省略形
- 変数名 := 初期値
型より変数名の方が先です。Javaとは逆です。
省略形がJavaScriptと同じですね。
また混乱しちゃうなー (ノ ´▽`*)わくわく!
if文
package main import "fmt" func main() { testNum := 6 // 基本の書き方 if testNum == 5 { fmt.Println("testNumは5") } else if testNum == 6 { fmt.Println("testNumは6") } else { fmt.Println("testNumは5でも6でもない") } }
実行結果:
ifの{}は省略不可で。条件文に()が付きません。
三項演算は使用できません。
誰が書いても同じ書き方になるようになってます。
switchは使用できるので、ifで複雑になりそうならぜひ。
For文
package main import "fmt" func main() { // 基本の書き方 for i:=0; i<3; i++ { fmt.Println("i", i) } // While風に書いてみる var nextflg = true; var cnt = 0; for nextflg { cnt = cnt + 1; if cnt >= 3 { nextflg = false; } fmt.Println("cnt", cnt) } }
実行結果:
繰り返しはfor文のみです。
whileもありません。いざぎよさがなんかかっこいいです。
複数の戻り値を返す関数
package main import "fmt" func main() { // 引数で番号渡して、名前と年齢を返してもらう name, age := getUserData(5) fmt.Println("名前:", name) fmt.Println("年齢:", age) } // 複数の戻り値を返す関数 func getUserData(userNo int)(name string, age int) { if userNo == 1 { name = "Sinji" age = 14 } else if userNo == 5 { name = "Kaworu" age = 15 } else { name = "" age = 99 } return }
実行結果:
GO言語ならでは!複数の戻り値を返す関数です。
どういう場面で使えるかなーーとか考えるのが楽しいです。
まとめ
変数の初期化の省略形のスタイリッシュさにぐっときました。
これとか超かっこよくないですか(複数の戻り値を返す関数より抜粋)
name, age := getUserData(5)
うん、かっこいい・・・。
以上、今回はGo言語をちょっとだけ触ってみました。
またなにか、別の言語も試してみたいと思いますっ。