いろんな言語の雰囲気だけ感じてみたい。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言語をちょっとだけ触ってみました。
またなにか、別の言語も試してみたいと思いますっ。