表达式类型不明确,没有类型别名的数组数组的更多上下文



我正试图创建一个typealias对象的数组数组,但我遇到了一个"表达式类型不明确,没有更多上下文"编译错误。这是我的代码:

typealias TestClosure = ((message: String)->())
var testArray = [[TestClosure]](count: 4, repeatedValue: nil)

我在这里错过了什么?

更新:

事实证明,当数组是一个选项数组时,它会编译:

var testArray = [[TestClosure]?](count: 4, repeatedValue: nil)

但是-我想确保初始数组将包含实际的空数组。我该怎么做?

Swift 2

使用repeatedValue创建空数组:

var testArray = Array(count: 4, repeatedValue: [TestClosure]())

Swift 3

语法已经改变,但想法是一样的:

var testArray = Array(repeating: [TestClosure](), count: 4)

使用[]创建空数组,而不是nil:

Swift 3:

typealias TestClosure = (String) -> ()
var testArray = [[TestClosure]](repeating: [], count: 4)

Swift 2:

typealias TestClosure = ((message: String) -> ())
var testArray = [[TestClosure]](count: 4, repeatedValue: [])

最新更新