2017-09-22 16 views
0

のタイプミスブログhere我々は、変数関数型変数宣言 - golang.orgで公式golangのドキュメントページ

f func(func(int,int) int, int) func(int, int) int 

機能型を宣言すると、それはのようにする必要がありますので、私は理解していない構文を持っています下の「int」を除いて

f func(func(int,int) int, int) func(int, int) 

私はGo Newbieです。私はここで何か誤解するかもしれません。 それはタイプミスですか?

答えて

3

どちらも正しいです。

これ:

f func(func(int,int) int, int) func(int, int) int 

2つのparamsをとる関数fでは、第1、第2のintある、タイプfunc(int,int) intであり、そして2つのintのparamsとint戻り型を持つ関数を返します。

この:

f func(func(int,int) int, int) func(int, int) 

はほとんど同じですが、戻り値の関数型はわずか2つのintのparamsを持っており、何も返しません。

したがって、ドキュメントには誤字はありません。

+0

ありがとうございます!だから、 '' f func(func(int、int)int、int)(func(int、int)int) '' 'ではないのは明らかですね。 –

+1

@NamGVUこれは、Goの_left-to-right_スタイルの構文のポイントです。余分な括弧なしでは明白です。私は複数の有効な解釈について考えなくてもそれを読むことができました。あなたはそれになれるようになる。 – icza

+0

そうですね。助けてくれてありがとう –

2

いいえ、誤字ではありません。

f func(func(int,int) int, int) func(int, int) int

これは、関数が2つのint型のparamsとのint戻り型を持つ関数を返す意味します。

関連する問題