假设我有一个数组,例如:

var myArray = ["Steve", "Bill", "Linus", "Bret"]

然后,我想将一个元素推入/追加到数组的末尾,以获得:

["Steve", "Bill", "Linus", "Bret", "Tim"]

我应该用什么方法呢?

如果我想在数组的前面添加一个元素呢?是否存在常数时不变?


当前回答

如果你愿意,你也可以传入一个变量和/或对象。

var str1:String = "John"
var str2:String = "Bob"

var myArray = ["Steve", "Bill", "Linus", "Bret"]

//add to the end of the array with append
myArray.append(str1)
myArray.append(str2)

将它们添加到前面:

//use 'insert' instead of append
myArray.insert(str1, atIndex:0)
myArray.insert(str2, atIndex:0)

//Swift 3
myArray.insert(str1, at: 0)
myArray.insert(str2, at: 0)

正如其他人已经说过的,从xCode 6.1开始,你不能再使用'+='

其他回答

在Swift 4.2中: 你可以使用

myArray.append("Tim") //To add "Tim" into array

or

myArray.insert("Tim", at: 0) //Change 0 with specific location 

从Swift 3 / 4 / 5开始,这样做。

向数组的末尾添加一个新元素。

anArray.append("This String")

将不同的数组附加到数组的末尾。

anArray += ["Moar", "Strings"]
anArray.append(contentsOf: ["Moar", "Strings"])

向数组中插入一个新元素。

anArray.insert("This String", at: 0)

将不同数组的内容插入到数组中。

anArray.insert(contentsOf: ["Moar", "Strings"], at: 0)

更多信息可以在“Swift编程语言”的“集合类型”一章中找到,从第110页开始。

摘自《Swift编程语言》第143页:

可以通过调用数组的append方法将新项添加到数组的末尾 或者,使用加法赋值操作符(+=)将一个新项添加到数组的末尾。

摘自:苹果公司《快速编程语言》。“iBooks。https://itun.es/us/jEUH0.l

使用+=和+运算符:

extension Array {

}

func += <V> (inout left: [V], right: V) {
    left.append(right)
}

func + <V>(left: Array<V>, right: V) -> Array<V>
{
    var map = Array<V>()
    for (v) in left {
        map.append(v)
    }

    map.append(right)

    return map
}

然后使用:

var list = [AnyObject]()
list += "hello" 
list += ["hello", "world!"]
var list2 = list + "anything"

要在后面加,使用+=运算符:

myArray += ["Craig"]
myArray += ["Jony", "Eddy"]

该操作符通常等价于append(contentsOf:)方法。(在非常老的Swift版本中,可以附加单个元素,而不仅仅是相同元素类型的其他集合。)

还有insert(_:at:)用于在任意下标处插入。

例如,如果您想要一个方便的函数用于开始插入,那么可以将它添加到带有扩展的Array类中。