今回の記事では、静的型付け言語Goの変数宣言と関数宣言についてまとめました。
- 型を指定して変数を設定する方法
- :=(コロンイコール)を使って、よしなに型をコンパイラに予想させる方法
- 関数宣言時に複数の返り値を設定する方法
など、基本的な内容を紹介いたします。
変数(var)の宣言方法
javascriptやPHPといった動的型付け言語の場合、変数の型を気にする必要がありません。
たとえば、javascriptの場合
1 2 |
var test = 123 test = "あああ" |
といった具合に、変数宣言時に数字(Int)を代入した後に、その変数に文字列(String)を代入しても問題はありません。
しかし、Goの場合は、
1 2 |
var test string = "Test" var intTest int = 123 |
このように、変数に入る対象が
- 文字列なのか(String)
- 整数値なのか(Int)
- 小数値なのか(Float)
をあらかじめ指定しておかなければなりません。
:=(コロンイコール)で宣言を省略できる
昔の静的型付け言語の場合、上記で示したようにすべての変数宣言時に型を記載しなければなりませんでした。
しかし、
1 |
var test string = "TEST" |
と宣言していた場合、【string】なんてわざわざ書いてあげなくても、どう考えても文字列が代入されますよね?笑
比較的最近開発されたGo言語の場合、そういった明らかに型が推論できる場合は、Goのコンパイラが自動で型をあててくれます。
1 |
test := "TEST" |
上記のように、「:=(コロンイコール)」を使って、変数を宣言すれば、【test】という変数は文字列(String)型で設定されます。
このように、静的型付け言語であるGoは、PHPやPython,Rubyといった動的型付け言語と異なり、ルールが強めのプログラミング言語になっています。
関数(func)の宣言方法
変数の宣言方法を紹介したので、次は関数の宣言方法を紹介いたします。
javascriptでいう
1 2 3 |
function testFunc() { return "abc" } |
というやつですね!!
Goの場合は、変数と同じく型の制約があります。
そして、関数(func)の場合は、返り値(returnされる値)の型をあらかじめ指定しておかなければなりません。
1 2 3 |
func testFunc() string { return "abc" } |
returnされる値が文字列(string)であることを関数宣言時に指定しておかないとエラーが発生します。
複数の値を返すことも可能
また、複数の値を返却する関数を作成することも可能です。
1 2 3 |
func testFunc() (string, int) { return "abc", 123 } |
このように記述すると、stringとintの2つをreturnする関数を作成したことになります。
難しいけど、理解が深まる
jsやPHP,perlといった言語に慣れ親しんできたので、型をあまり気にせずプログラミングをしていたのかもしれません。
「Goなどの静的型付け言語も学ぶべき!」というのは、エンジニア上級者の方がよくくださるアドバイスなので、これからもGoの勉強を少しずつ進めていこうと思います!