如何在Swift中创建一个空数组?

Inu*_*sha 136 arrays ios swift

我真的很困惑我们在Swift中创建数组的方式.你能告诉我有多少种方法来创建一个带有一些细节的空数组?

Dav*_*e G 269

干得好:

var yourArray = [String]()
Run Code Online (Sandbox Code Playgroud)

以上也适用于其他类型,而不仅仅是字符串.这只是一个例子.

为它添加值

我认为你最终想要为它添加一个值!

yourArray.append("String Value")
Run Code Online (Sandbox Code Playgroud)

要么

let someString = "You can also pass a string variable, like this!"
yourArray.append(someString)
Run Code Online (Sandbox Code Playgroud)

通过插入添加

获得一些值后,您可以插入新值而不是附加值.例如,如果要在数组的开头插入新对象(而不是将它们附加到结尾):

yourArray.insert("Hey, I'm first!", atIndex: 0)
Run Code Online (Sandbox Code Playgroud)

或者您可以使用变量使插入更灵活:

let lineCutter = "I'm going to be first soon."
let positionToInsertAt = 0
yourArray.insert(lineCutter, atIndex: positionToInsertAt)
Run Code Online (Sandbox Code Playgroud)

你可能最终想要删除一些东西

var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"]
yourOtherArray.removeAtIndex(1)
Run Code Online (Sandbox Code Playgroud)

当你知道数组在数组中的位置时(也就是说,当你知道它的索引值时),上面的工作很有用.当索引值从0开始时,第二个条目将在索引1处.

在不了解索引的情况下删除值

但是如果你不这样做呢?如果yourOtherArray有数百个值并且您只知道要删除等于"RemoveMe"的值,该怎么办?

if let indexValue = yourOtherArray.indexOf("RemoveMe") {
    yourOtherArray.removeAtIndex(indexValue)
}
Run Code Online (Sandbox Code Playgroud)

这应该让你开始!


vic*_*hai 26

var myArr1 = [AnyObject]()
Run Code Online (Sandbox Code Playgroud)

可以存储任何对象

var myArr2 = [String]()
Run Code Online (Sandbox Code Playgroud)

只能存储字符串


小智 22

你可以用

var firstNames: [String] = []
Run Code Online (Sandbox Code Playgroud)


Lor*_*lor 21

斯威夫特3

在Swift中有三种方法可以创建一个空数组,并且总是首选缩写语法.

方法1:速记语法

var arr = [Int]()
Run Code Online (Sandbox Code Playgroud)

方法2:阵列初始化器

var arr = Array<Int>()
Run Code Online (Sandbox Code Playgroud)

方法3:具有Array Literal的数组

var arr:[Int] = []
Run Code Online (Sandbox Code Playgroud)

方法4:积分转到@BallpointBen

var arr:Array<Int> = []
Run Code Online (Sandbox Code Playgroud)

  • @XinyangLi 为什么简写语法是首选?这4种方式的编译时间有什么区别吗? (3认同)

Aar*_*ron 17

在swift中创建/初始化数组有两种主要方法.

var myArray = [Double]()
Run Code Online (Sandbox Code Playgroud)

这将创建一个双打数组.

var myDoubles = [Double](count: 5, repeatedValue: 2.0)
Run Code Online (Sandbox Code Playgroud)

这将创建一个包含5个双精度数组的数组,所有数组都以2.0的值初始化.


小智 7

如果要声明一个空的字符串类型数组,可以用5种不同的方法来做到这一点:

var myArray: Array<String> = Array()
var myArray = [String]()
var myArray: [String] = []
var myArray = Array<String>()
var myArray:Array<String> = []
Run Code Online (Sandbox Code Playgroud)

任何类型的数组:

    var myArray: Array<AnyObject> = Array()
    var myArray = [AnyObject]()
    var myArray: [AnyObject] = []
    var myArray = Array<AnyObject>()
    var myArray:Array<AnyObject> = []
Run Code Online (Sandbox Code Playgroud)

整数类型的数组:-

    var myArray: Array<Int> = Array()
    var myArray = [Int]()
    var myArray: [Int] = []
    var myArray = Array<Int>()
    var myArray:Array<Int> = []
Run Code Online (Sandbox Code Playgroud)


Bob*_*bby 6

这是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
Run Code Online (Sandbox Code Playgroud)


ABS*_*ABS 5

swift 中的数组写为 **Array < Element > **,其中 Element 是数组允许存储的值的类型。

数组可以初始化为:

let emptyArray = [String]()

它表明它是一个字符串类型的数组

根据初始值设定项的类型推断 emptyArray 变量的类型为 [String]。

用于创建带有元素的字符串类型数组

var groceryList: [String] = ["Eggs", "Milk"]

杂货清单已初始化为两个项目

杂货清单变量被声明为“字符串值数组”,写为 [String]。这个特定的数组指定了一个字符串值类型,它只允许存储字符串值。

数组有各种属性,例如:

- 检查数组是否有元素(如果数组为空)

isEmpty 属性( Boolean ) 用于检查 count 属性是否等于 0:

if groceryList.isEmpty {
    print("The groceryList list is empty.")
} else {
    print("The groceryList is not empty.")
}
Run Code Online (Sandbox Code Playgroud)

- 在数组中追加(添加)元素

您可以通过调用数组的 append(_:) 方法将新项添加到数组的末尾:

groceryList.append("Flour")
Run Code Online (Sandbox Code Playgroud)

杂货清单现在包含 3 个项目。

或者,使用加法赋值运算符 (+=) 附加一个或多个兼容项的数组:

groceryList += ["Baking Powder"]
Run Code Online (Sandbox Code Playgroud)

杂货清单现在包含 4 个项目

groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]
Run Code Online (Sandbox Code Playgroud)

杂货清单现在包含 7 个项目