2014-10-20 43 views
3

斯威夫特可以有​​的地圖嗎?斯威夫特功能地圖

像這樣的東西(這是不工作):

let map = [ 
    "action": func() { print("action!") }, 
    "error": func() {print("error!") } 
] 

有什麼其他的設計模式,我可以按照實現這一目標?

回答

6

您可以通過將關閉在字典

let map = [ 
    "action": {() in print("action!") }, 
    "error": {() in print("error!") } 
] 

或字典之外創建了一個功能,並讓他們的名字,然後使這些名稱爲字典

func action() { 
    print("action!") 
} 

func error() { 
    print("error!") 
} 

let map = [ 
    "action": action, 
    "error": error 
] 

做到這一點,看起來像你想要的是一個匿名函數(aka closure),這是第一個解決方案給你的。 func關鍵字只能用於創建命名函數。

+0

[關閉文檔](https://developer.apple.com/library/ios/documentation/swift/conceptual/Swift_Programming_Language/Closures.html) – nerdwaller 2014-10-20 03:35:05