Làm cách nào để tạo một mảng trống trong Swift?


154

Tôi thực sự bối rối với cách chúng ta tạo một mảng trong Swift. Bạn có thể vui lòng cho tôi biết có bao nhiêu cách để tạo một mảng trống với một số chi tiết?


9
var myArray: [String] = []
Leo Dabus



Vậy tôi nên làm gì nếu tôi muốn lưu trữ bất kỳ loại đối tượng nào trong mảng của mình?
Inuyasha

var myArray: [AnyObject] = []
Leo Dabus

Câu trả lời:


295

Ở đây bạn đi:

var yourArray = [String]()

Ở trên cũng hoạt động cho các loại khác và không chỉ chuỗi. Đó chỉ là một ví dụ.

Thêm giá trị cho nó

Tôi đoán cuối cùng bạn sẽ muốn thêm một giá trị cho nó!

yourArray.append("String Value")

Hoặc là

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

Thêm bằng cách chèn

Khi bạn có một vài giá trị, bạn có thể chèn các giá trị mới thay vì nối thêm. Ví dụ: nếu bạn muốn chèn các đối tượng mới vào đầu mảng (thay vì nối thêm chúng vào cuối):

yourArray.insert("Hey, I'm first!", atIndex: 0)

Hoặc bạn có thể sử dụng các biến để làm cho phần chèn của bạn linh hoạt hơn:

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

Cuối cùng, bạn có thể muốn xóa một số nội dung

var yourOtherArray = ["MonkeysRule", "RemoveMe", "SwiftRules"]
yourOtherArray.remove(at: 1)

Ở trên hoạt động tuyệt vời khi bạn biết giá trị ở đâu trong mảng (nghĩa là khi bạn biết giá trị chỉ mục của nó). Khi các giá trị chỉ mục bắt đầu từ 0, mục nhập thứ hai sẽ ở chỉ mục 1.

Xóa giá trị mà không biết chỉ số

Nhưng nếu bạn không? Điều gì sẽ xảy ra nếu yourOtherArray có hàng trăm giá trị và tất cả những gì bạn biết là bạn muốn xóa giá trị bằng "RemoveMe"?

if let indexValue = yourOtherArray.index(of: "RemoveMe") {
    yourOtherArray.remove(at: indexValue)
}

Điều này sẽ giúp bạn bắt đầu!


Không chắc chắn tại sao câu trả lời này có nhiều phiếu nhất. Nó trả lời rất nhiều câu hỏi mà OP không bao giờ hỏi, nhưng chỉ cung cấp một cách để tạo một mảng trống, khi câu hỏi được hỏi 'vui lòng cho tôi biết có bao nhiêu cách để tạo một mảng trống'.
Kal

27
var myArr1 = [AnyObject]()

có thể lưu trữ bất kỳ đối tượng

var myArr2 = [String]()

chỉ có thể lưu trữ chuỗi


bạn có thể cho biết cách thêm phần tử trong danh sách mảng
Gowthaman M

24

Bạn đã có thể sử dụng

var firstNames: [String] = []

24

Swift 3

Có ba (3) cách để tạo một mảng trống trong Swift và cách cú pháp tốc ký luôn được ưu tiên.

Cách 1: Cú pháp tốc ký

var arr = [Int]()

Phương pháp 2: Trình khởi tạo mảng

var arr = Array<Int>()

Phương pháp 3: Mảng có một mảng

var arr:[Int] = []

Phương thức 4: Tín dụng vào @BallpointBen

var arr:Array<Int> = []

1
Hoặc var arr: Array<Int> = []. [T]chỉ là viết tắt choArray<T>
BallpointBen

@XinyangLi tại sao cú pháp tốc ký được ưa thích? Có sự khác biệt nào về thời gian biên dịch giữa 4 cách đó không?
KlimczakM

20

Có 2 cách chính để tạo / intialize một mảng trong swift.

var myArray = [Double]()

Điều này sẽ tạo ra một loạt các Nhân đôi.

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

Điều này sẽ tạo ra một mảng gồm 5 nhân đôi, tất cả được khởi tạo với giá trị 2.0.


Cảm ơn, tôi có thể khai báo như thế này `var myArray = [AnyObject] ()` không?
Inuyasha

Vâng, điều đó sẽ tạo ra một mảng 'AnyObject' cho phép bạn đặt khá nhiều thứ vào đó. Trừ khi bạn cần một mảng như thế này, tốt hơn là cung cấp cho nó một giá trị cụ thể như 'var myArray = [String] ()'.
Aaron

Lưu ý Swift 4 thay đổi cú pháp cho initialising mảng với lặp lại giá trị cho những điều sau đây: var myDoubles = [Double](repeating: 2.0, count: 5)- lưu ý việc thay đổi thứ tự của các thông số và sự thay đổi trong nhãn của repeatedValueđểrepeating
HirdayGupta

8

Nếu bạn muốn khai báo một mảng trống kiểu chuỗi, bạn có thể làm điều đó theo 5 cách khác nhau: -

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

Mảng thuộc bất kỳ loại nào: -

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

Mảng kiểu số nguyên: -

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

7

Dưới đây là một số tác vụ phổ biến trong Swift 4, bạn có thể sử dụng làm tài liệu tham khảo cho đến khi bạn quen với mọi thứ.

    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

3

Mảng trong swift được viết là ** Mảng <Element> **, trong đó Element là loại giá trị mà mảng được phép lưu trữ.

Mảng có thể được khởi tạo là:

let emptyArray = [String]()

Nó cho thấy rằng một mảng của chuỗi kiểu

Kiểu của biến blankArray được suy ra là [Chuỗi] từ loại trình khởi tạo.

Để tạo mảng chuỗi kiểu với các phần tử

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

Danh sách tạp hóa đã được khởi tạo với hai mục

Biến g Tạp chí được khai báo là một mảng các giá trị chuỗi , được viết là [Chuỗi]. Mảng đặc biệt này đã chỉ định một loại giá trị của Chuỗi, nó chỉ được phép lưu trữ các giá trị Chuỗi.

Có nhiều tính thích hợp khác nhau của mảng như:

- Để kiểm tra xem mảng có các phần tử không (Nếu mảng có trống hay không)

Thuộc tính isEmpty (Boolean) để kiểm tra xem thuộc tính đếm có bằng 0 hay không:

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

- Nối (thêm) các phần tử trong mảng

Bạn có thể thêm một mục mới vào cuối một mảng bằng cách gọi phương thức chắp thêm (_ :) của mảng:

groceryList.append("Flour")

Danh sách tạp hóa hiện có 3 mục.

Ngoài ra, nối thêm một mảng của một hoặc nhiều mục tương thích với toán tử gán bổ sung (+ =):

groceryList += ["Baking Powder"]

Danh sách tạp hóa hiện có 4 mục

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

Danh sách tạp hóa hiện có 7 mục


3

Theo 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()

2

bạn có thể xóa nội dung mảng bằng cách chuyển chỉ mục mảng hoặc bạn có thể xóa tất cả

    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)

1

Swift 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)
}

Một câu trả lời tương tự được đưa ra nhưng nó không hoạt động cho phiên bản Swift mới nhất (Swift 5), vì vậy đây là câu trả lời được cập nhật. Hy vọng nó giúp! :)


1

Bắt đầu một mảng với số lượng được xác định trước:

Array(repeating: 0, count: 10)

Tôi thường sử dụng điều này để ánh xạ các câu lệnh trong đó tôi cần một số đối tượng giả định cụ thể. Ví dụ,

let myObjects: [MyObject] = Array(repeating: 0, count: 10).map { _ in return MyObject() }


0

Tương thích với: Xcode 6.0.1+

Bạn có thể tạo một mảng trống bằng cách chỉ định loại Phần tử của mảng trong khai báo.

Ví dụ:

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

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

Ví dụ từ trang nhà phát triển apple (Array):

Hy vọng điều này sẽ giúp bất cứ ai vấp vào trang này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.