Goの勉強を始めてみた

はじめに

ちょっと作ってみたいと思ったものがあり、使用するライブラリの関係でGoを触ってみることにしました。
Goはほとんど書いたことがないので、最初の1歩がどんな感じだったのか書いておこうと思います。

A Tour of Goをやってみる

Goの基本を学ぶことができるA Tour of Goというサービスがあるので、これをやってみました。ブラウザ上でコードを書いて、そのまま実行することができます。英語版だけでなく、日本語版もあります。
go-tour-jp.appspot.com

代入

大多数の言語と同様に=で代入ができます。

var x, y bool = true, false

こんな感じで複数の変数にまとめて代入することもできます。
代入には:=という演算子を使うこともできます。これは暗黙的な型宣言を行います。

出力

package main

import "fmt"

func main() {
	var n := 10

	fmt.Println(n)
}

こんな感じで標準出力への出力ができます。fmt.Printf()を使うとフォーマット指定ができます。

fmt.Printf("Type: %T Value: %v\n", n, n)

フォーマット指定で%Tを指定すると、変数の型が出力されます。また、%vを指定すると、変数の値がいい感じに出力されます。

var isFlag := true
fmt.Printf("%v\n", isFlag)

というように書くと、trueと出力されます。bool型の値をtrue/falseで出力してくれるのは便利だと思いました。

関数

func pi() float32 {
	return 3.14159265
}

これは、引数を取らずにfloat32型の値を返す関数です。このように、返す値の型は){の間に書きます。

func boolAndstr() (b bool, str string) {
	b = false
	str = "string"
	return
}

これは、引数を取らずにbool型の値とstring型の値を返す関数です。このように、変数名を指定することで関数中で同名の変数に値を代入して返すことができます。

おわりに

これまではC/C++C#JavaJavaScriptPython等の言語を書いた経験がありますが、Goはそれらの言語とは一味違う感じがしました。個人的にはかなり独特に感じたので、基本的なところから丁寧に勉強してみようと思います。