Golangで関数を定義する方法
Golangにおける関数定義の仕方を、以下の4ケースにわけて解説します。
- 引数と返り値なし
- 引数あり
- 返り値あり
- 引数と返り値あり
引数なし・返り値なしの場合
引数・返り値のない場合は関数名と波括弧の中に処理内容を記述すればOKです。
func 関数名() {
//関数の処理
}
例えば、ただ「Hello World!」という文字列を出力する処理の場合以下のようになります。
func OutPutString() {
fmt.Println("Hello World!")
}
引数のみがある場合
引数がある場合は、引数の型を記述する必要があります。複数の引数を取る場合はそれぞれの型を明示的に示します。
func 関数名(引数1 引数1の型, 引数2 引数2の型) {
//関数の処理
}
例えば、名前と年齢を引数に与え、それらを出力する関数の場合は以下のようになります。
//関数定義
func NameAge(name string, age int) {
fmt.Println(name)
fmt.Println(age)
}
//(例) nama=>"yoshida", age=>"20"の場合
NameAge("yoshida", 20) //関数呼び出し(実行)
"yoshida" //出力結果
20 //出力結果
ちなみに、複数与えた引数の型が同じ時はまとめて型の指定ができます。
//関数定義
func OutPutNumber(number1, number2 int) { //number1とnumber2が同じ型だからまとめてintを指定
fmt.Println(number1 + number2) //2つの数値の合計を出力する処理
}
//(例)100と200を引数に与える場合
OutPutNumber(100, 200) //関数実行
300 //出力結果
返り値のみがある場合
返り値の型を明示的に示す必要があります。また、returnを返り値を指定する必要もあります。
func 関数名() 返り値の型 {
return 処理結果(返り値)
}
例えば、「Hello World!」という文字列を返す関数を作ってみると以下の通りです。
//関数定義
func ReturnHelloWorld() string {
return "Hello World!"
}
//関数実行
ReturnHelloWorld()
=> "Hello World!" //返り値
引数あり・返り値ありの場合
引数・返り値どちらも必要になる場合は、引数の型・返り値の型どちらも明示的に記述しないといけないです。
func 関数名(引数 引数の型) 返り値の型 {
return 処理結果(返り値)
}
例えば、2つの数値を引数に渡して足した結果を返す関数は以下のようになります。
func PlusNumber(number1 int, number2 int) int {
return number1 + number2
}
試しにこの関数に300と400の2つの数値を引数に渡して実行してみると、両方を足した結果である700が処理結果として返ってきます。
PlusNumber(300, 400)
=> 700