【Go言語】静的型付け言語Goの変数宣言と関数宣言【:=(コロンイコール)】

今回の記事では、静的型付け言語Goの変数宣言と関数宣言についてまとめました。

  • 型を指定して変数を設定する方法
  • :=(コロンイコール)を使って、よしなに型をコンパイラに予想させる方法
  • 関数宣言時に複数の返り値を設定する方法

など、基本的な内容を紹介いたします。

変数(var)の宣言方法

javascriptやPHPといった動的型付け言語の場合、変数の型を気にする必要がありません。

たとえば、javascriptの場合

といった具合に、変数宣言時に数字(Int)を代入した後に、その変数に文字列(String)を代入しても問題はありません。

しかし、Goの場合は、

このように、変数に入る対象が

  • 文字列なのか(String)
  • 整数値なのか(Int)
  • 小数値なのか(Float)

をあらかじめ指定しておかなければなりません。

:=(コロンイコール)で宣言を省略できる

昔の静的型付け言語の場合、上記で示したようにすべての変数宣言時に型を記載しなければなりませんでした。

しかし、

と宣言していた場合、【string】なんてわざわざ書いてあげなくても、どう考えても文字列が代入されますよね?

比較的最近開発されたGo言語の場合、そういった明らかに型が推論できる場合は、Goのコンパイラが自動で型をあててくれます。

上記のように、「:=(コロンイコール)」を使って、変数を宣言すれば、【test】という変数は文字列(String)型で設定されます。

このように、静的型付け言語であるGoは、PHPやPython,Rubyといった動的型付け言語と異なり、ルールが強めのプログラミング言語になっています。

関数(func)の宣言方法

変数の宣言方法を紹介したので、次は関数の宣言方法を紹介いたします。

javascriptでいう

というやつですね!!

Goの場合は、変数と同じく型の制約があります。

そして、関数(func)の場合は、返り値(returnされる値)の型をあらかじめ指定しておかなければなりません。

returnされる値が文字列(string)であることを関数宣言時に指定しておかないとエラーが発生します。

複数の値を返すことも可能

また、複数の値を返却する関数を作成することも可能です。

このように記述すると、stringとintの2つをreturnする関数を作成したことになります。

難しいけど、理解が深まる

jsやPHP,perlといった言語に慣れ親しんできたので、型をあまり気にせずプログラミングをしていたのかもしれません。

「Goなどの静的型付け言語も学ぶべき!」というのは、エンジニア上級者の方がよくくださるアドバイスなので、これからもGoの勉強を少しずつ進めていこうと思います!

ABOUTこの記事をかいた人

新卒ノマドエンジニアとして独立し、半年で月収100万円を達成する。フリーランスのエンジニアとして活動しながら、事務所を売却(バイアウト)したり、Youtuber(最高月間視聴回数109万回、チャンネル登録者1万人)をしたり、Openrecの公式配信者としてゲーム生実況をしたり、ベンチャー企業のCOOをしたり、パラレルキャリアを歩んでいる。 2019年にミニマムライフコストを不労所得で稼げるようになったため、いまは好きなことだけ仕事にしています。