2
。當我閱讀Closures時,沒有關於內聯關閉的定義。在Swift中,如何理解「內聯閉包」?每個人都有
Q1:如何理解inline closure中的內聯?
問題2:「內聯關閉」和正常關閉有什麼不同?
在此先感謝您的幫助!
。當我閱讀Closures時,沒有關於內聯關閉的定義。在Swift中,如何理解「內聯閉包」?每個人都有
Q1:如何理解inline closure中的內聯?
問題2:「內聯關閉」和正常關閉有什麼不同?
在此先感謝您的幫助!
內聯值是一個直接使用的值,沒有先分配給中間變量。考慮以下兩個例子:
let number = 1
print(number)
這裏,1
被分配給一箇中間變量,number
,然後將其打印出來。
print(1)
這裏,1
是內聯整數字面值,它是直接打印的。
封閉也是如此。
let evenNumberFilter: (Int) -> Bool = { $0 % 2 == 0 }
print((0...10).filter(evenNumberFilter))
這裏,{ $0 % 2 == 0 }
是真實在使用之前分配給該中間變量evenNumberFilter
一個封閉件((Int) -> Bool
類型)。
print((0...10).filter{ $0 % 2 == 0 })
在這種情況下,直接使用{ $0 % 2 == 0 }
。這是一個內聯關閉。
謝謝@亞歷山大 –
@VinothVino如果我已經回答了您的問題,請接受答案。 – Alexander