トップページ > プログラム > 2016年06月02日 > sFcAoyCt

書き込み順位&時間帯一覧

11 位/203 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000101001200000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Go language part 1

書き込みレス一覧

Go language part 1
568 :デフォルトの名無しさん[sage]:2016/06/02(木) 10:03:29.88 ID:sFcAoyCt
func later() func(string) string {
...
return func(g string) string {
...
}
}
ごめん、このクロージャの最初の部分のlater() func(string) stringってどういう意味?
関数名がlater 戻り値がstringは分かるけど、func(string)がなんでこんな場所に書かれてるのかな、と
Go language part 1
570 :デフォルトの名無しさん[sage]:2016/06/02(木) 12:02:45.10 ID:sFcAoyCt
う〜ん、難しい...
Go language part 1
572 :デフォルトの名無しさん[sage]:2016/06/02(木) 15:52:21.01 ID:sFcAoyCt
>>569
あぁ、なるほど
ようやく今理解した

func later() [func(string) string] {
[]は見やすいようにわざと書いたけど、こういう事だね

関数laterは引数は取らずに、
返り値として「stringを引数に取り、stringを返り値として返す」
Go language part 1
573 :デフォルトの名無しさん[sage]:2016/06/02(木) 16:09:51.23 ID:sFcAoyCt
あれ、ちょっと待って

https://ideone.com/i9EfQl

later()は引数取らないけれど、
f := later()
f("apple")
どっからstoreに"apple"なんか文字列引数が渡されてるの?
こういう型の場合、ローカル変数(ここではstore)にコンストラクタのような働きが起って自動的に引数がセットされるって事?
Go language part 1
574 :デフォルトの名無しさん[sage]:2016/06/02(木) 16:14:42.71 ID:sFcAoyCt
連投ごめん
f := late()
によって、fはlater()の返り値の関数を取得してるんだね
だから、f("apple")には上の無名関数func(string) stringが呼び出されて"apple"が引数とされているってことか
ごめん、分かった


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。