Go言語の基本文法 – 関数・メソッド –

Go言語のプログラミングで使用する基本的な文法についてまとめました。

今回は関数・メソッドについて調べました

 

 

 

関数の定義

 

関数の定義方法の書式は下記のようになります。

返り値や引数がない場合は、それらを省略することもできます。逆に引数や返り値を複数取ることもできます。

 

またGo言語では返り値の部分に変数を割り当て、プログラムを一部省略して書くことができます。次に書く関数は書き方が少し異なりますが、同じ処理を行っています。

 

返り値の受け取りと破棄

関数から返り値を受け取る方法はC言語とほぼ同じ方法で行えます。またGo言語では関数の返り値をすべて受け取る必要はなく、不要なものは破棄することができます。

 

 

lambda式(無名関数)と関数を返す関数

Go言語ではLisp言語で言うところの「lambda式(無名関数)」を使用することができます。これは関数に名前を与えずに定義を行うことができます。またこの機能を利用することで関数を返す関数を定義して、より柔軟な関数を作ることができます。

 

クロージャ

Go言語ではlambda式を用いて「クロージャ」の機能を利用できます。クロージャは日本語でいうと関数閉包と呼ばれ、関数とそれを囲う環境をセットにしたものです。lambda式の元となったlisp言語で言うところの「Let Over Lambda」です。
Go言語では関数を返す関数を用いて以下のように書きます。

 

関数の終了処理

Go言語では関数の終了時に実行する式を登録しておくことができます。

 

メソッド

Go言語にはクラスがありませんので、オブジェクト指向言語でいうところのメソッドはありません。しかしGo言語には構造体と関数を結びつけるためのメソッド機能があります。

 

関連記事

Go言語の基本文法 – 型・データ構造 –

 

Go言語プログラミングの流れ