如何创建一个空的可选数组?
How to create an empty, optional array?
Swift5/Xcode12.4.
我知道如何初始化一个空数组:
var myarray = [String]()
我知道如何初始化可选字符串:
var mystring:String? = ""
如何创建一个空的可选数组并对其进行初始化?我不希望内容是可选的,而是数组本身,所以我可以将它设置为 to/check nil
。
建议使用 var myArray = [String]?()
但这只是在 playground 中显示“调用初始化程序时没有完全匹配”错误。
var myarray:[String]? = ()
也显示错误(“无法将类型 '()' 的值转换为指定类型 '[String]?'”)。
如果你真的想要这样做:
var myArray: [String]? = []
数组文字用[]
表示。不是 ()
。 ()
是一个空元组。
但是,正如人们在评论中提到的那样,这是一种反模式。如果“空数组”和“nil”与您的代码没有什么不同,那么只需使用常规 [String]
,并使用空数组来表示“无”。
另外,从评论来看,您似乎正在尝试按照编写 Java 代码的方式编写 Swift 代码。我建议你不要那样做。入乡随俗:)
Swift5/Xcode12.4.
我知道如何初始化一个空数组:
var myarray = [String]()
我知道如何初始化可选字符串:
var mystring:String? = ""
如何创建一个空的可选数组并对其进行初始化?我不希望内容是可选的,而是数组本身,所以我可以将它设置为 to/check nil
。
var myArray = [String]?()
但这只是在 playground 中显示“调用初始化程序时没有完全匹配”错误。
var myarray:[String]? = ()
也显示错误(“无法将类型 '()' 的值转换为指定类型 '[String]?'”)。
如果你真的想要这样做:
var myArray: [String]? = []
数组文字用[]
表示。不是 ()
。 ()
是一个空元组。
但是,正如人们在评论中提到的那样,这是一种反模式。如果“空数组”和“nil”与您的代码没有什么不同,那么只需使用常规 [String]
,并使用空数组来表示“无”。
另外,从评论来看,您似乎正在尝试按照编写 Java 代码的方式编写 Swift 代码。我建议你不要那样做。入乡随俗:)