【发布时间】:2015-03-19 19:24:26
【问题描述】:
我在尝试创建存储函数数组的变量时遇到以下问题:
class MySwiftClass {
// Compilation Error: '()' is not a subtype of 'MySwiftClass'
var arrayOfFunctions: [() -> Int] = [myFunction]
func myFunction() -> Int {
return 0
}
}
实际上这段代码无法编译错误:
'()' 不是 'MySwiftClass' 的子类型
但是如果在运行时设置这个数组就可以了:
class MySwiftClass {
var arrayOfFunctions: [() -> Int] = [() -> Int]()
init() {
arrayOfFunctions = [myFunction]
}
func myFunction() -> Int {
return 0
}
}
谁能解释这是 Swift 编译器的错误还是预期的行为?在第一种情况下,我没有看到任何编译错误的原因,而且错误描述对我来说是有意义的。
【问题讨论】:
标签: swift compiler-errors first-class-functions