7Dec/09Off
goで関数内に複数のreturnを書くことができないなんて嘘
@itのGolangの記事の誤解
を見て知ったんだけど、全く同意。
記事を@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登場の背景」はもう少し別のところにあるとおもう今日この頃。