Swift'te boş bir dizi nasıl oluşturulur?


155

Swift'te bir dizi oluşturma yöntemlerimizle gerçekten kafam karıştı. Bazı detayları içeren boş bir dizi oluşturmanın kaç yolunu söyleyebilir misiniz?


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



Dizimde herhangi bir nesne depolamak istersem ne yapmalıyım?
Inuyasha

var myArray: [AnyObject] = []
Leo Dabus

Yanıtlar:


297

Hadi bakalım:

var yourArray = [String]()

Yukarıdakiler sadece dizgiler için değil, diğer tipler için de çalışır. Bu sadece bir örnek.

Ona Değer Ekleme

Sonunda buna bir değer eklemek isteyeceğinizi düşünüyorum!

yourArray.append("String Value")

Veya

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

Ekleyerek Ekle

Birkaç değeriniz olduğunda, eklemek yerine yeni değerler ekleyebilirsiniz. Örneğin, dizinin başına yeni nesneler eklemek istiyorsanız (sonuna eklemek yerine):

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

Veya eklemenizi daha esnek hale getirmek için değişkenleri kullanabilirsiniz:

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

Sonunda bazı şeyleri kaldırmak isteyebilirsiniz

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

Yukarıdaki değer dizide nerede olduğunu bildiğinizde (yani, dizin değerini bildiğinizde) harika çalışır. İndeks değerleri 0'dan başladığında, ikinci giriş indeks 1'de olacaktır.

Dizini Bilmeden Değerleri Kaldırma

Ama ya yapmazsan? DiğerArray'nizde yüzlerce değer varsa ve bildiğiniz tek şey, "RemoveMe" değerine eşit olanı kaldırmak istediğinizdir?

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

Bu senin başlamanı sağlamalı!


Bu cevabın neden en fazla oy verdiğinden emin değilim. OP'nin hiç sormadığı birçok soruyu cevaplar, ancak boş bir dizi oluşturmak için yalnızca bir yol sağlar, 'lütfen bana boş bir dizi oluşturmanın kaç yolunu söyleyin' sorusu sorulur.
Kal

27
var myArr1 = [AnyObject]()

herhangi bir nesneyi saklayabilir

var myArr2 = [String]()

sadece dizeyi saklayabilir


dizi listesine nasıl eleman ekleyeceğinizi söyleyebilir misiniz
Gowthaman M

25

Kullanabilirsin

var firstNames: [String] = []

24

Hızlı 3

Swift ve steno sözdiziminde boş bir dizi oluşturmanın üç (3) yolu vardır. her zaman yolu tercih edilir.

Yöntem 1: Steno Sözdizimi

var arr = [Int]()

Yöntem 2: Dizi Başlatıcısı

var arr = Array<Int>()

Yöntem 3: Dizi Dizisi ile Dizi

var arr:[Int] = []

Yöntem 4: Kredi @BallpointBen

var arr:Array<Int> = []

1
Veya var arr: Array<Int> = []. [T]sadece kısayolArray<T>
BallpointBen

@XinyangLi neden steno sözdizimi tercih ediliyor? Bu 4 yol arasında derleme süresinde herhangi bir fark var mı?
KlimczakM

20

Hızlı bir şekilde bir dizi oluşturmak / başlatmak için 2 ana yolu vardır.

var myArray = [Double]()

Bu, bir Çiftler dizisi oluşturur.

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

Bu, tümü 2.0 değeriyle başlatılan 5 çift kişilik bir dizi oluşturur.


Teşekkürler, böyle söyleyebilir miyim? Var myArray = [AnyObject] () `?
Inuyasha

Evet, oraya hemen hemen her şeyi koymanıza izin veren bir dizi 'AnyObject' yapacak. Böyle bir diziye ihtiyacınız yoksa, ona 'var myArray = [String] ()' gibi belirli bir değer vermek daha iyi olur.
Aaron

: Not Swift 4 aşağıdakilere değerlerini tekrar birlikte diziyi initialising için sözdizimi değişti var myDoubles = [Double](repeating: 2.0, count: 5)not parametrelerinin düzenin değişimi ve etiketinde değişikliği - repeatedValueiçinrepeating
HirdayGupta

8

Boş bir dize türü dizisi bildirmek isterseniz, bunu 5 farklı şekilde yapabilirsiniz: -

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

Herhangi bir tür dizi: -

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

Tamsayı türü dizisi: -

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

7

Swift 4'te, şeylere alışana kadar referans olarak kullanabileceğiniz bazı genel görevler.

    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

4

Swift içindeki dizi ** Dizi <Element> ** olarak yazılır, burada Element dizinin saklamasına izin verilen değer türüdür.

Dizi şu şekilde başlatılabilir:

let emptyArray = [String]()

Bu bir dizi dize olduğunu gösterir

EmptyArray değişkeninin türünün, başlatıcı türünden [Dize] olduğu anlaşılır.

Öğe dizisi dizisini öğelerle oluşturmak için

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

groceryList iki öğeyle başlatıldı

GroceryList değişkeni “bir dizi dize değeri” olarak bildirildi [String] olarak yazılan . Bu belirli dizi, Dize değer türünü belirtmiştir, yalnızca Dize değerlerini depolamasına izin verilir.

Dizinin çeşitli özellikleri vardır:

- Dizinin öğeleri olup olmadığını kontrol etmek için (Dizi boşsa veya değilse)

count özelliğinin 0'a eşit olup olmadığını kontrol etmek için isEmpty özelliği (Boolean):

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

- Diziye eleman ekleme (ekleme)

Dizinin append (_ :) yöntemini çağırarak dizinin sonuna yeni bir öğe ekleyebilirsiniz:

groceryList.append("Flour")

groceryList artık 3 ürün içeriyor.

Alternatif olarak, ekleme ataması operatörüne (+ =) bir veya daha fazla uyumlu öğeden oluşan bir dizi ekleyin:

groceryList += ["Baking Powder"]

groceryList artık 4 öğe içeriyor

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

groceryList artık 7 öğe içeriyor


3

Swift 5'e göre

    // 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

dizi içeriğini dizi dizinini geçerek kaldırabilir veya tümünü kaldırabilirsiniz

    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

Hızlı 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)
}

Benzer bir cevap verilir, ancak bu Swift'in (Swift 5) en son sürümü için çalışmaz, bu yüzden güncellenmiş cevap. Umarım yardımcı olur! :)


1

Önceden tanımlanmış bir sayıya sahip bir dizi başlatma:

Array(repeating: 0, count: 10)

Ben genellikle belirtilen sayıda sahte nesneye ihtiyaç duyduğum ifadeleri eşlemek için kullanıyorum. Örneğin,

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


0

İle uyumlu: Xcode 6.0.1+

Bildirimde dizinizin Öğe türünü belirterek boş bir dizi oluşturabilirsiniz.

Örneğin:

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

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

Elma geliştirici sayfasından örnek (Dizi):

Umarım bu, bu sayfaya tökezleyen herkese yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.