讓我們假設這種情況:我有一個對象數組,並且我希望每個對象都有一個調用實例方法。我可以這樣做:在數組中的每個對象上調用實例方法
//items is an array of objects with instanceMethod() available
items.forEach { $0.instanceMethod() }
與map
相同的情況是。比如我要地圖的每個對象與mappingInstanceMethod
別的返回值:
let mappedItems = items.map { $0.mappingInstanceMethod() }
有一個更清潔的方式來做到這一點?
例如在Java中一個可以做:的
items.forEach(Item::instanceMethod);
代替
items.forEach((item) -> { item.instanceMethod(); });
類同語法提供斯威夫特?
如果我正確理解你的問題,那麼就在這裏找到答案:?有沒有打電話SequenceType.forEach時參考實例函數的方式(http://stackoverflow.com/questions/34049116/是,有-A-方式對參考實例函數時,主叫序列類型-的foreach)。 - 簡短回答是「否」,因爲curried函數的參數順序錯誤,所以不能「簡單地」在Swift中調用items.forEach(Item.instanceMethod)'。 –
......換句話說:你在做什麼已經是一個乾淨的Swifty方式。 –