假设我有一个数组,例如:
var myArray = ["Steve", "Bill", "Linus", "Bret"]
然后,我想将一个元素推入/追加到数组的末尾,以获得:
["Steve", "Bill", "Linus", "Bret", "Tim"]
我应该用什么方法呢?
如果我想在数组的前面添加一个元素呢?是否存在常数时不变?
假设我有一个数组,例如:
var myArray = ["Steve", "Bill", "Linus", "Bret"]
然后,我想将一个元素推入/追加到数组的末尾,以获得:
["Steve", "Bill", "Linus", "Bret", "Tim"]
我应该用什么方法呢?
如果我想在数组的前面添加一个元素呢?是否存在常数时不变?
当前回答
如果数组是NSArray,你可以使用add函数添加数组末尾的任何对象,如下所示:
斯威夫特4.2
var myArray: NSArray = []
let firstElement: String = "First element"
let secondElement: String = "Second element"
// Process to add the elements to the array
myArray.adding(firstElement)
myArray.adding(secondElement)
结果:
print(myArray)
// ["First element", "Second element"]
这是一个非常简单的方法,问候!
其他回答
要在后面加,使用+=运算符:
myArray += ["Craig"]
myArray += ["Jony", "Eddy"]
该操作符通常等价于append(contentsOf:)方法。(在非常老的Swift版本中,可以附加单个元素,而不仅仅是相同元素类型的其他集合。)
还有insert(_:at:)用于在任意下标处插入。
例如,如果您想要一个方便的函数用于开始插入,那么可以将它添加到带有扩展的Array类中。
你可以用
Myarray.insert("Data #\(index)", atIndex: index)
在Swift 4.2中: 你可以使用
myArray.append("Tim") //To add "Tim" into array
or
myArray.insert("Tim", at: 0) //Change 0 with specific location
如果想追加唯一对象,可以展开数组结构
extension Array where Element: Equatable {
mutating func appendUniqueObject(object: Generator.Element) {
if contains(object) == false {
append(object)
}
}
}
如果你愿意,你也可以传入一个变量和/或对象。
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开始,你不能再使用'+='