go言語は複数の戻り値を使った計算が関数でできます。
それについて解説します。
【結論】
func calculate(a int, b int) (int, int) {
sum := a + b
diff := a - b
return A, B
}
Goの関数は複数の値を返すことができます。これは、一回の関数呼び出しで複数の結果を出せます。
【理由】
戻り値を二つ使うと複数の計算結果を出せます。
func cal(x, y int) (int, int) {
return (x / y), (x * y)
}
func main() {
result := cal(数値、数値)
fmt.Println(result)
}
resultという変数内に:=で()内に引数となる数値を入れて、xとyで二つの引数を受け取り戻り値を出します。
【具体例】
①
package main
import "fmt"
// 数値型で引数はint
// 引数の右に戻り値データ
func cal(x, y int) int {
//6/3
return (x / y)
}
func main() {
// 関数の結果を変数に代入
result := cal(6, 3)
fmt.Println(result)
}
②
package main
import "fmt"
// 数値型で引数はint
// 戻り値2つ
func cal(x, y int) (int, int) {
return (x / y), (x * y)
// 6/3
// 6x3
}
func main() {
// 代入する変数2つ
result01, result02 := cal(6, 3)
fmt.Println(result01, result02)
}
③
package main
import "fmt"
// 数値型で引数はint
// 戻り値2つ
func cal(x, y int) (a int, b int) {
a = x / y
b = x * y
return
}
func main() {
// 代入する変数2つ
result01, result02 := cal(6, 3)
fmt.Println(result01, result02)
}
【結論】
①はcal(6, 3)をcal(x, y int)に引数として入れてx / y割るだから2となり戻り値として出します。
②は cal(6, 3)でresult01, result02と変数二つ代入して func cal(x, y int) (int, int) { return (x / y), (x * y)とする事で二つの戻り値ができます。
それをreturnで計算して割り算は2、かけ算は18となります。
③は(x, y int) (a int, b int)とする事で
a = x / y
b = x * y
とかけます。
結果は②と同じです。
戻り値が二つあるからgo言語はいろんな計算を一つのコードででき便利です。
取材やお仕事紹介などはこちらからお気軽にご連絡下さい。
ysa7825@gmail.com