Swift 如何向数组中添加数字?敏捷的

Swift 如何向数组中添加数字?敏捷的,swift,Swift,例如: var myArray = ["first string","second string"] myArray.append(35) // Here will be an error 如果你写信 var myArray = ["first string","second string"] print(myArray.dynamicType) 您将看到myArray属于Array或[String]类型。您不能将Int附加到该值 您需要自己指定myArray的类型: var myArra

例如:

var myArray = ["first string","second string"]

myArray.append(35) // Here will be an error
如果你写信

var myArray = ["first string","second string"]
print(myArray.dynamicType)
您将看到
myArray
属于
Array
[String]
类型。您不能将
Int
附加到该值

您需要自己指定
myArray
的类型:

var myArray : [AnyObject] = ["first string","second string"]

print(myArray.dynamicType) // now prints Array<AnyObject> which you can add Int to

myArray.append(35)
var myArray:[AnyObject]=[“第一个字符串”、“第二个字符串”]
print(myArray.dynamicType)//现在打印可以添加Int的数组
myArray.append(35)
如果您编写

var myArray = ["first string","second string"]
print(myArray.dynamicType)
您将看到
myArray
属于
Array
[String]
类型。您不能将
Int
附加到该值

您需要自己指定
myArray
的类型:

var myArray : [AnyObject] = ["first string","second string"]

print(myArray.dynamicType) // now prints Array<AnyObject> which you can add Int to

myArray.append(35)
var myArray:[AnyObject]=[“第一个字符串”、“第二个字符串”]
print(myArray.dynamicType)//现在打印可以添加Int的数组
myArray.append(35)
如果您选择单击
myArray
,您将看到它的类型是
[String]
(字符串的数组)。只能将
String
s添加到
myArray

如果希望能够将
Int
添加到数组中,则需要更具包容性的类型。如果您制作数组
[Any]
,则可以在其中放入任何内容

var myArray:[Any] = ["first string","second string"]
myArray.append(35)   // This now works
如果只想存储
Int
String
,可以创建自己的自定义协议:

protocol StringsAndInts {
}

extension String: StringsAndInts {
}

extension Int: StringsAndInts {
}

var myArray:[StringsAndInts] = ["first string","second string"]

myArray.append(35)

print(myArray)  // ["first string", "second string", 35]

myArray.append(3.14)  // error: argument type 'Double' does not conform to expected type 'StringsAndInts'
如果您选择单击
myArray
,您将看到它的类型是
[String]
(字符串的数组)。只能将
String
s添加到
myArray

如果希望能够将
Int
添加到数组中,则需要更具包容性的类型。如果您制作数组
[Any]
,则可以在其中放入任何内容

var myArray:[Any] = ["first string","second string"]
myArray.append(35)   // This now works
如果只想存储
Int
String
,可以创建自己的自定义协议:

protocol StringsAndInts {
}

extension String: StringsAndInts {
}

extension Int: StringsAndInts {
}

var myArray:[StringsAndInts] = ["first string","second string"]

myArray.append(35)

print(myArray)  // ["first string", "second string", 35]

myArray.append(3.14)  // error: argument type 'Double' does not conform to expected type 'StringsAndInts'

我认为苹果公司对此有一些很好的文档。数组的类型为
[String]
,元素的类型为
String
。因此,swift期望数组的新成员也是
String
类型,而上面的
35
是整数文本。尝试
myArray.append(“35”)
myArray.append(String(35)??”)
。我只是在学习swift,我想知道-如果数组有字符串类型,是否可以将数字添加到数组中?键入更通用的数组,
[任何]
,我相信,您可以追加35。但这样会丢失类型信息。我认为苹果公司对此有一些很好的文档。数组的类型为
[String]
,元素的类型为
String
。因此,swift期望数组的新成员也是
String
类型,而上面的
35
是整数文本。尝试
myArray.append(“35”)
myArray.append(String(35)??”)
。我只是在学习swift,我想知道-如果数组有字符串类型,是否可以将数字添加到数组中?键入更通用的数组,
[任何]
,我相信,您可以追加35。但这样会丢失类型信息。谢谢!这正是I1m所寻找的)如果您想在数组中只允许Int和String,请查看vacawama的答案!LUK2302请注意,这只在自由桥接的帮助下工作,所以导入基础是必要的。字符串被桥接到u NSContiguousString,Int被桥接到u NSCFNumber。谢谢!这正是I1m所寻找的)如果您想在数组中只允许Int和String,请查看vacawama的答案!LUK2302请注意,这只在自由桥接的帮助下工作,所以导入基础是必要的。字符串被桥接到u NSContiguousString,Int被桥接到u NSCFNumber。