kumama go言語とかgolangとかGAEとかネットサービスとかその他色々・・・

7Dec/09Off

goで関数内に複数のreturnを書くことができないなんて嘘

@itのGolangの記事の誤解
を見て知ったんだけど、全く同意。

元記事:第1回 Google Go登場の背景

記事を@ITに書くというのは非常に有意義で、是非これからも末永く続けて欲しいと思う。だけどミスリーディングはヤメテ欲しい。

package main

func Fx(i int) (ret int) {
    if i > 0 { ret = i*i; return; } else { ret = 0; return; }
    return;
}

func Fx2(i int)(int) {
    if i > 0 { return i*i } else { return 0; }
    return 0;
}

単純にコントロールパスの問題。最後のreturnには絶対に入らないからそれぐらい察しろよgoコンパイラって事かもしれないけど、だからといって関数内に複数のreturnを書くことができないというのは無茶。

その他、記事全体的に微妙な感じがする。

「Google Go登場の背景」はもう少し別のところにあるとおもう今日この頃。

Filed under: golang Comments Off
Comments (0) Trackbacks (0)

Sorry, the comment form is closed at this time.

No trackbacks yet.