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

时间:2015-05-25 02:43:22

标签: ios arrays swift

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

13 个答案:

答案 0 :(得分:244)

你走了:

var yourArray = [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)

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

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处。

在不知道指数的情况下删除值

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

if let indexValue = yourOtherArray.indexOf("RemoveMe") {
    yourOtherArray.removeAtIndex(indexValue)
}

这应该可以帮到你!

答案 1 :(得分:24)

WHERE

可以存储任何对象

var myArr1 = [AnyObject]()

只能存储字符串

答案 2 :(得分:20)

您可以使用

var firstNames: [String] = []

答案 3 :(得分:20)

Swift 3

有三种方法可以在Swift中创建一个空数组,速记语法方式总是首选。

方法1:速记语法

var arr = [Int]()

方法2:阵列初始化程序

var arr = Array<Int>()

方法3:具有Array Literal的数组

var arr:[Int] = []

方法4:积分转到@BallpointBen

var arr:Array<Int> = []

答案 4 :(得分:15)

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

var myArray = [Double]()

这将创建一个双打阵列。

var myDoubles = [Double](count: 5, repeatedValue: 2.0)

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

答案 5 :(得分:6)

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

var myArray: Array<String> = Array()
var myArray = [String]()
var myArray: [String] = []
var myArray = Array<String>()
var myArray:Array<String> = []

任何类型的数组:-

    var myArray: Array<AnyObject> = Array()
    var myArray = [AnyObject]()
    var myArray: [AnyObject] = []
    var myArray = Array<AnyObject>()
    var myArray:Array<AnyObject> = []

整数类型的数组:-

    var myArray: Array<Int> = Array()
    var myArray = [Int]()
    var myArray: [Int] = []
    var myArray = Array<Int>()
    var myArray:Array<Int> = []

答案 6 :(得分:4)

以下是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

答案 7 :(得分:3)

swift中的数组写为**数组&lt;元素&gt; **,其中Element是允许存储数组的值的类型。

数组可以初始化为:

<强> let emptyArray = [String]()

它显示了一个类型为string

的数组

emptyArray变量的类型从初始化程序的类型推断为[String]。

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

<强> var groceryList: [String] = ["Eggs", "Milk"]

groceryList已初始化为两个项目

groceryList变量声明为“字符串值数组”,写为[String]。  此特定数组指定了String类型的值,只允许存储String值。

数组的各种特性如下:

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

isEmpty属性(布尔值),用于检查count属性是否等于0:

if groceryList.isEmpty {
    print("The groceryList list is empty.")
} else {
    print("The groceryList is not empty.")
}

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

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

groceryList.append("Flour")

groceryList现在包含3个项目。

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

groceryList += ["Baking Powder"]

groceryList现在包含4个项目

groceryList += ["Chocolate Spread", "Cheese", "Peanut Butter"]

groceryList现在包含7个项目

答案 8 :(得分:2)

您可以通过传递数组索引来删除数组内容,也可以删除所有

function acme_login_redirect( $redirect_to, $request, $user  ) {
    return ( is_array( $user->roles ) && in_array( 'administrator', $user->roles ) ) ? admin_url() : site_url();
}
add_filter( 'login_redirect', 'acme_login_redirect', 10, 3 );

答案 9 :(得分:1)

快速5

// Create an empty array
var emptyArray = [String]()

// Add values to array by appending (Adds values as the last element)
emptyArray.append("Apple")
emptyArray.append("Oppo")

// Add values to array by inserting (Adds to a specified position of the list)
emptyArray.insert("Samsung", at: 0)

// Remove elements from an array by index number
emptyArray.remove(at: 2)

// Remove elements by specifying the element
if let removeElement = emptyArray.firstIndex(of: "Samsung") {
    emptyArray.remove(at: removeElement)
}

给出了类似的答案,但不适用于最新版本的Swift(Swift 5),因此这里是更新的答案。希望能帮助到你! :)

答案 10 :(得分:1)

根据Swift 5

    // An array of 'Int' elements
    let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]

    // An array of 'String' elements
    let streets = ["Albemarle", "Brandywine", "Chesapeake"]

    // Shortened forms are preferred
    var emptyDoubles: [Double] = []

    // The full type name is also allowed
    var emptyFloats: Array<Float> = Array()

答案 11 :(得分:0)

兼容于:Xcode 6.0.1 +

您可以通过在声明中指定数组的Element类型来创建一个空数组。

例如:

// Shortened forms are preferred
var emptyDoubles: [Double] = []

// The full type name is also allowed
var emptyFloats: Array<Float> = Array()

Example from the apple developer page (Array):

希望这可以帮助任何绊到此页面的人。

答案 12 :(得分:-1)

HotelSim2Image <- eventReactive(input$findhotels, { url <- paste0('https://www.abcdef.com%2FHotel%2FSearch%3FhotelId%3D1870464', HotelSimilarity[HotelSimilarity$HotelName == input$hname, ]$Sim2) html <- paste(readLines(url), collapse="\n") matched <- str_match_all(html, "https.*xxx.com.*jpg") src = matched[[1]][4] tags$img(src=src, height = 150, width = 175) }) 。我经常使用它来映射我需要指定数量的模拟对象的语句。例如,

Array(repeating: 0, count: 10)