2020/05/04

[golang]named return values

golangでは戻り値とする変数名に予め名前を決めておくことができる。

Named return values
https://tour.golang.org/basics/7

named returnではなく、named return valuesなので、return valuesがnamedなのだ。

 

01: package main
02: 
03: import "fmt"
04: 
05: func namedReturn(param int) (a int, b string) {
06:     if param == 0 {
07:         a = 10
08:         b = "hello"
09:         return
10:     } else {
11:         return 99, "world"
12:     }
13: }
14: 
15: func main() {
16:     p, q := namedReturn(0)
17:     fmt.Printf("p=%d, q=%s\n", p, q)
18:     p, q = namedReturn(1)
19:     fmt.Printf("p=%d, q=%s\n", p, q)
20: }

かといって、名前を付けていたからといってreturnが空っぽ(naked returnというそうだ)でなければ指定した値を返すこともできる。

この辺は、namedにしたらnamedだけ、みたいなルールの方が良かったんじゃないかと思うが、まあ自分で気をつければいいか。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。