Fel*_*len 321 arrays ios swift
假设我有一个数组,例如:
var myArray = ["Steve", "Bill", "Linus", "Bret"]
Run Code Online (Sandbox Code Playgroud)
后来我想将一个元素推送/附加到所述数组的末尾,以获得:
["Steve", "Bill", "Linus", "Bret", "Tim"]
我应该使用什么方法?
那么我想在数组的前面添加一个元素呢?有不变的时间吗?
Mic*_*lum 576
从Swift 3/4开始,这可以通过以下方式完成.
将新元素添加到Array的末尾.
anArray.append("This String")
Run Code Online (Sandbox Code Playgroud)
要将不同的Array附加到Array的末尾.
anArray += ["Moar", "Strings"]
anArray.append(contentsOf: ["Moar", "Strings"])
Run Code Online (Sandbox Code Playgroud)
要在元素中插入新元素.
anArray.insert("This String", at: 0)
Run Code Online (Sandbox Code Playgroud)
将不同Array的内容插入Array中.
anArray.insert(contentsOf: ["Moar", "Strings"], at: 0)
Run Code Online (Sandbox Code Playgroud)
更多信息可以在" Swift编程语言 " 的"集合类型"一章中找到,从第110页开始.
小智 18
如果需要,您还可以传入变量和/或对象.
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)
Run Code Online (Sandbox Code Playgroud)
要将它们添加到前面:
//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)
Run Code Online (Sandbox Code Playgroud)
正如其他人已经说过的那样,你不能再使用xCode 6.1中的'+ ='了
ric*_*ter 16
要添加到最后,请使用+=运算符:
myArray += ["Craig"]
myArray += ["Jony", "Eddy"]
Run Code Online (Sandbox Code Playgroud)
该运算符通常等同于该append(contentsOf:)方法.(在非常古老的Swift版本中,可以附加单个元素,而不仅仅是相同元素类型的其他集合.)
还insert(_:at:)可以插入任何索引.
例如,如果您想在开头插入便利功能,可以将其添加到Array具有扩展名的类中.
Aqi*_*taz 10
使用+ =和+运算符:
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
}
Run Code Online (Sandbox Code Playgroud)
然后使用:
var list = [AnyObject]()
list += "hello"
list += ["hello", "world!"]
var list2 = list + "anything"
Run Code Online (Sandbox Code Playgroud)
Dequeover的主要好处Array是它支持两端的高效插入和删除。
var names:Deque = ["Steve", "Bill", "Linus", "Bret"]
Run Code Online (Sandbox Code Playgroud)
Tim在名称末尾names.append("Tim")
Run Code Online (Sandbox Code Playgroud)
Tim 在名称的开头names.prepend("John")
Run Code Online (Sandbox Code Playgroud)
names.popFirst() // "John"
Run Code Online (Sandbox Code Playgroud)
names.popLast() // "Tim"
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您希望在数组的开头插入而不丢失第一个位置的项目,这里有一个小扩展
extension Array{
mutating func appendAtBeginning(newItem : Element){
let copy = self
self = []
self.append(newItem)
self.appendContentsOf(copy)
}
}
Run Code Online (Sandbox Code Playgroud)
在 Swift 4.1 和 Xcode 9.4.1 中
我们基本上可以通过两种方式向数组添加对象
let stringOne = "One"
let strigTwo = "Two"
let stringThree = "Three"
var array:[String] = []//If your array is string type
Run Code Online (Sandbox Code Playgroud)
类型1)
//To append elements at the end
array.append(stringOne)
array.append(stringThree)
Run Code Online (Sandbox Code Playgroud)
类型2)
//To add elements at specific index
array.insert(strigTwo, at: 1)
Run Code Online (Sandbox Code Playgroud)
如果你想添加两个数组
var array1 = [1,2,3,4,5]
let array2 = [6,7,8,9]
let array3 = array1+array2
print(array3)
array1.append(contentsOf: array2)
print(array1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
356413 次 |
| 最近记录: |