0
我這裏有這個閉合,來檢查,如果第一個值大於第二個,如果真的返回一個布爾值:閉包用速記不工作
var bloco12: (Int, Int -> Bool) -> Bool = {
return $1($0)
}
println(bloco12(32, {$0 > 10}))
但我瞭解到,有另一種方式來簡化這隻能使用符號>,就像這樣:
bloco12(32, >)
但這代碼不起作用,爲什麼呢?
函數簽名不匹配。 'bloco12'需要一個'Int'和一個閉包,它需要一個'Int'並返回一個'Bool'。你試圖給它一個'Int'和一個需要2個參數並返回一個'Bool'的函數。 – vacawama
@vacawama有趣...在很多教程中,他們創造了一個功能來做到這一點....所以唯一的形式是隻使用符號>正在創建一個函數? – LettersBa
'>'本身代表'(Int,Int) - > Bool'。儘管有許多'>'功能。還有'(Double,Double) - > Bool','(Float,Float) - > Bool',但它們都帶有2個參數並返回一個'Bool'。 – vacawama