2017-01-25 8 views
0

次のコードを見てください。swiftの簡略引数について3. Swiftへの初回

var shorthand: (String, String) -> String 
shorthand = { $1 } 
print(shorthand("100", "200")) 

私はこのコンセプトの周りを頭で囲んでいます。私の考えでは、2行目を省略形= {$ 0}に変更すれば、100を戻すべきです。しかし、これは機能しません。次のエラーが表示されます。

Cannot convert value of type '(String, String)' to closure result type 'String'

返品方法を教えてください。

+0

クロージャが2つの引数をとる場合、 '$ 0'は最初の引数(' $ 1'も存在する場合)または*両方の引数( '$ 1'が存在しない場合)を参照できます。後者の場合、 '$ 0'は' $ 0.0'のタプルで、$ 0.1は最初のrespです。 2番目の引数。 –

答えて

0

この100印刷の使用を得るために:それはタプルを返し、あなたが最初の要素にアクセスする必要があるため

var shorthand: (String, String) -> String 
shorthand = { $0.0 } 
print(shorthand("100", "200")) 

+0

Cool。優れた。だからタプルは構造{0.0}が私に最初の要素の最初の値を与えると言っているでしょう。したがって、{0.1}を書いた場合、私は200を得るでしょうか?確かに – DaGama

+0

!それを返信としてマークしてください。 –

関連する問題