Cou氏の徒然日記

ほのぼの日記ブログです。

Go言語の学習 その9 (複数の戻り値を返す関数)

Go言語(Golang)では、複数の戻り値を返すことができるようです。

CとはJavaだと戻り値は1つなので、結構新鮮です。

 

[calc/devide.go]
package calc

func Divide(a int, b int) int {
	return a / b
}

func Reminder(a int, b int) int {
	return a % b
}

func Divide2(a int, b int) (int, int) {
	return a / b, a % b
}

Devide2関数を新たに定義して、商と余りの2つのint型の値を返すようにします。

戻り値が複数ある場合は、カッコで囲って、その中に型を羅列すればいいようです。

そして、return文でも、カンマ区切りで羅列すればOK。

(順番は当然意識しないといけないですが…)

 

[main/main.go]
package main

import (
	"fmt"

	"test1/calc"
)

func main() {
	//fmt.Println("Hello, world!")

...(中略)...
// 20 ÷ 3 = ? value1, value2 := calc.Divide2(20, 3) fmt.Printf("%d, %d", value1, value2) }

そして、呼び出し側も定義。

今回は、20÷3の結果を取得。

value1で「商」を、value2で「余り」を受け取ります。

 

早速実行してみると…

きちんと取れていました。

分かってくるとGoも結構便利だなと思えてきますね。