栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Swift中将不同类型的值存储在Array中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Swift中将不同类型的值存储在Array中

来自REPL

 xcrun swift  1> import Foundation  2> var test = ["a", "b", true, "hi", 1]test: __NSArrayI = @"5 objects" {  [0] = "a"  [1] = "b"  [2] =  [3] = "hi"  [4] = (long)1}  3>

您可以看到的

test
NSArray
,这是
AnyObject[]
NSObject[]

发生的事情是

Foundation
提供了将数字和布尔值转换为的能力
NSNumber
。需要编译代码时,编译器将执行转换。

因此,它们现在具有的通用类型,

NSObject
因此可以推断为
NSArray


没有,您的代码将无法在REPL中编译

import Foundation

 var test = ["a", "b", true, "hi", 1]<REPL>:1:12: error: cannot convert the expression's type 'Array' to type 'ArrayLiteralConvertible'

 var test:Array = ["a", "b", true, "hi", 1]<REPL>:4:18: error: cannot convert the expression's type 'Array' to type 'ExtendedGraphemeClusterLiteralConvertible'

但是你可以做到

var test : Any[] = ["a", "b", true, "hi", 1]

因为它们具有通用类型,即

Any


注意:

AnyObject[]
不能使用
import Foundation

var test:AnyObject[] = ["a", "b", true, "hi", 1]<REPL>:2:24: error: type 'Bool' does not conform to protocol 'AnyObject'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614009.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号