【问题标题】:Array with string and number带有字符串和数字的数组
【发布时间】:2014-07-05 16:35:01
【问题描述】:

在objective c中很容易创建一个像这样的异构数组:

NSArray *myArray = @["String1", "String2", 123, 456];

有什么方法可以快速创建这样的数组吗?

如果是,那怎么办?

注意:我在 swift 中尝试过类似的语句 -

var arr = ["string1", "string2", 123, 456]

但它给出了编译错误:

Playground execution failed: error: <REPL>:124:17: error: cannot convert the expression's type 'Array' to type 'IntegerLiteralConvertible'
var arr : Any = ["string1", "string2", 123, 456]

【问题讨论】:

    标签: arrays swift


    【解决方案1】:

    是的,你也可以在 Swift 中做到这一点。

    var arr: Array<Any> = ["string1", "string2", 123, 456]
    

    Any 类型的数组可以保存字符串、整数和其他对象和结构。

    【讨论】:

    • 我在操场上试过这个,但我收到这个错误消息:操场执行失败:错误::124:11:错误:无法将表达式的类型“Array”转换为“ArrayLiteralConvertible”类型var arr = ["string1", "string2", 123, 456] 有什么想法吗?
    • 如果您明确键入它应该可以工作。我刚刚编辑了我的答案
    • 值得一提的是,任何时候你看到“它在操场上不起作用”并不一定意味着它在 Swift 中不起作用。 Playground 目前处于测试阶段,存在问题。
    • 我的理解是问题在于 Swift 中的字符串不能具有 nil 的值,但 AnyObjects 是 nil-able。另一方面,Anys 不需要是nil-able。这是根本原因吗?
    猜你喜欢
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 2015-09-11
    • 2020-03-30
    • 2015-11-18
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    相关资源
    最近更新 更多