func adder() func(int) int の意味


最後の `int` が返り値の型なのは分かりますが、その前の `func(int)` が分かりません。



[code]

    func adder() func(int) int {
      ...
    }
    
[/code]

であれば、`adder()`の返す型は`func(int)
int`、つまり関数(クロージャ)です。最後の`int`は`adder`ではなく帰ってくるその関数の返す型となるわけです。

<https://tour.golang.org/moretypes/25>



[code]

    func adder() func(int) int {
      ...
    }
    
[/code]

であれば、`adder()`の返す型は`func(int)
int`、つまり関数(クロージャ)です。最後の`int`は`adder`ではなく帰ってくるその関数の返す型となるわけです。

<https://tour.golang.org/moretypes/25>

