如何在Swift中创build一个空数组?
我真的很困惑我们在Swift中创build数组的方式。 你能告诉我有多less种方法来创build一个空的数组与一些细节?
干得好:
var yourArray = [String]()
以上也适用于其他types,而不仅仅是string。 这只是一个例子。
给它增加值
我想你最终会想为它添加一个值!
yourArray.append("String Value")
要么
let someString = "You can also pass a string variable, like this!" yourArray.append(someString)
通过插入添加
一旦你有一些值,你可以插入新的值,而不是追加。 例如,如果你想在数组的开始插入新的对象(而不是追加到最后):
yourArray.insert("Hey, I'm first!", atIndex: 0)
或者你可以使用variables来使你的插入更灵活:
let lineCutter = "I'm going to be first soon." let positionToInsertAt = 0 yourArray.insert(lineCutter, atIndex: positionToInsertAt)
你可能最终想删除一些东西
var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"] yourOtherArray.removeAtIndex(1)
当你知道数组中的值是什么时(即,当你知道它的索引值时),上面的工作很好。 由于索引值从0开始,第二项将在索引1。
在不知道指数的情况下删除价值
但是,如果你不这样做? 如果你的其他数组有数百个值,而你所知道的是你想删除一个等于“RemoveMe”的值?
if let indexValue = yourOtherArray.indexOf("RemoveMe") { yourOtherArray.removeAtIndex(indexValue) }
这应该让你开始!
var myArr1 = [AnyObject]()
可以存储任何对象
var myArr2 = [String]()
只能存储string
你可以使用
var firstNames: [String] = []
有两种主要的方法可以在swift中创build/初始化数组。
var myArray = [Double]()
这将创build一个双精度数组。
var myDoubles = [Double](count: 5, repeatedValue: 2.0)
这将创build一个5个双打的数组,全部用2.0的值初始化。
Swift 3
有三种方法可以在Swift中创build一个空数组,总是首选简写语法 。
方法1:速记语法
var arr = [Int]()
方法2:数组初始化器
var arr = Array<Int>()
方法3:数组字面值
var arr:[Int] = []
方法4:信贷到@BallpointBen
var arr:Array<Int> = []
swift中的数组被写为** Array <Element> **,其中Element是数组允许存储的值的types。
数组可以初始化为:
let emptyArray = [String]()
它显示了它的一个stringtypes的数组
根据初始值设定项的types,emptyArrayvariables的types被推断为[String]。
用于创build包含元素的string数组
var groceryList: [String] = ["Eggs", "Milk"]
groceryList已经初始化了两个项目
groceryListvariables被声明为“string值数组” ,写成[String]。 这个特定的数组指定了一个值types的string,它只允许存储string值。
有数组的各种性质,如:
– 检查数组是否有元素(如果数组是空的或不是)
isEmpty属性(布尔型)用于检查count属性是否等于0:
if groceryList.isEmpty { print("The groceryList list is empty.") } else { print("The groceryList is not empty.") }
– 追加(添加)数组中的元素
您可以通过调用数组的append(_ :)方法将新项添加到数组的末尾:
groceryList.append("Flour")
groceryList现在包含3个项目。
或者,使用加法赋值运算符(+ =)追加一个或多个兼容项目的数组:
groceryList += ["Baking Powder"]
groceryList现在包含4个项目
groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]
groceryList现在包含7个项目
您可以通过传递数组索引来删除数组内容,也可以删除全部内容
var array = [String]() print(array) array.append("MY NAME") print(array) array.removeFirst() print(array) array.append("MY NAME") array.removeLast() array.append("MY NAME1") array.append("MY NAME2") print(array) array.removeAll() print(array)
以下是Swift 4中的一些常见任务,您可以使用它作为参考,直到您习惯了事物。
let emptyArray = [String]() let emptyDouble: [Double] = [] let preLoadArray = Array(repeating: 0, count: 10) // initializes array with 10 default values of the number 0 let arrayMix = [1, "two", 3] as [Any] var arrayNum = [1, 2, 3] var array = ["1", "two", "3"] array[1] = "2" array.append("4") array += ["5", "6"] array.insert("0", at: 0) array[0] = "Zero" array.insert(contentsOf: ["-3", "-2", "-1"], at: 0) array.remove(at: 0) array.removeLast() array = ["Replaces all indexes with this"] array.removeAll() for item in arrayMix { print(item) } for (index, element) in array.enumerated() { print(index) print(element) } for (index, _) in arrayNum.enumerated().reversed() { arrayNum.remove(at: index) } let words = "these words will be objects in an array".components(separatedBy: " ") print(words[1]) var names = ["Jemima", "Peter", "David", "Kelly", "Isabella", "Adam"] names.sort() // sorts names in alphabetical order let nums = [1, 1234, 12, 123, 0, 999] print(nums.sorted()) // sorts numbers from lowest to highest