我正试图创建一个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: [])