Misalkan saya memiliki sebuah array, misalnya:
var myArray = ["Steve", "Bill", "Linus", "Bret"]
Dan kemudian saya ingin mendorong / menambahkan elemen ke akhir array tersebut, untuk mendapatkan:
["Steve", "Bill", "Linus", "Bret", "Tim"]
Metode apa yang harus saya gunakan?
Dan bagaimana dengan kasus di mana saya ingin menambahkan elemen ke bagian depan array? Apakah ada waktu terus-menerus berubah?
let array = [Int]()
Anda tidak akan pernah bisa mengatakanarray[0] = 42
Ini akan memberikan indeks di luar rentang kesalahan. Anda harus menggunakanarray.append(42)
. Mengapa Anda tidak bisa berlangganan? Untuk alasan yang sama Anda tidak dapat melakukanletters[3] = d
untuklet letters = [a,b,c]
. Indeks ke-3 tidak ada seperti halnya array [0] sebelum nilai!Jawaban:
Pada Swift 3/4/5 , ini dilakukan sebagai berikut.
Untuk menambahkan elemen baru ke akhir Array.
Untuk menambahkan Array yang berbeda ke akhir Array Anda.
Untuk memasukkan elemen baru ke dalam Array Anda.
Untuk menyisipkan konten Array yang berbeda ke dalam Array Anda.
Informasi lebih lanjut dapat ditemukan di bab "Jenis Koleksi" pada " Bahasa Pemrograman Swift ", mulai dari halaman 110.
sumber
splice
ganti nama menjadiinsertContentsOf
di Swift 2.Anda juga dapat mengirimkan variabel dan / atau objek jika Anda mau.
Untuk menambahkannya ke depan:
Seperti yang telah dinyatakan orang lain, Anda tidak dapat lagi menggunakan '+ =' pada xCode 6.1
sumber
.prepend()
fungsi, memasukkan di kepala tampaknya menjadi pendekatan yang baikUntuk menambahkan sampai akhir, gunakan
+=
operator:Operator itu umumnya setara dengan
append(contentsOf:)
metode. (Dan dalam versi Swift yang sangat lama, dapat menambahkan elemen tunggal, bukan hanya koleksi lain dari tipe elemen yang sama.)Ada juga
insert(_:at:)
untuk memasukkan indeks apa pun.Jika, katakanlah, Anda menginginkan fungsi kenyamanan untuk memasukkan di awal, Anda bisa menambahkannya ke
Array
kelas dengan ekstensi .sumber
myArray
bertipeArray
, maka baris pertama salah. The+=
Operator hanya dapat digunakan jika keduamyArray
dan operan kanan adalah tipeArray
.+=
danappend
setara adalah tidak benar, yang pertama melibatkan pembuatan array sementara yang akan dibuang segera setelah fungsi operator mengkonsumsinya.Gunakan + = dan + operator:
lalu gunakan:
sumber
var copy = left
dan menambahkancopy.append(right)
sudah cukup. Di Swift, array adalah tipe nilai, bukan tipe referensi.Ini adalah ekstensi kecil jika Anda ingin memasukkan di awal array tanpa kehilangan item di posisi pertama
sumber
Dalam Swift 4.1 dan Xcode 9.4.1
Kita dapat menambahkan objek ke Array pada dasarnya dalam Dua cara
Tipe 1)
Tipe 2)
Jika Anda ingin menambahkan dua array
sumber
Dari halaman 143 dari Bahasa Pemrograman Swift:
Kutipan dari: Apple Inc. “Bahasa Pemrograman Swift.” iBooks. https://itun.es/us/jEUH0.l
sumber
Untuk menambah solusi yang disarankan
append
, penting untuk mengetahui bahwa ini adalah operasi waktu konstan diamortisasi dalam banyak kasus:Saya mencari
cons
operator sejenis untuk Swift. Itu harus mengembalikan array tidak berubah baru dengan elemen ditempelkan di ujung, dalam waktu yang konstan, tanpa mengubah array asli. Saya belum menemukan fungsi standar yang melakukan ini. Saya akan mencoba mengingat untuk melaporkan kembali jika saya menemukannya!sumber
Anda bisa menggunakannya
sumber
Jika Anda ingin menambahkan objek unik, Anda dapat memperluas struct Array
sumber
Jika array adalah NSArray, Anda dapat menggunakan
adding
fungsi untuk menambahkan objek apa pun di akhir array, seperti ini:Cepat 4.2
Hasil :
Itu cara yang sangat sederhana, salam!
sumber
Di Swift 4.2: Anda bisa menggunakan
atau
sumber
Contoh: siswa = ["Ben", "Ivy", "Jordell"]
1) Untuk menambahkan elemen tunggal ke akhir array, gunakan append (_ :)
students.append(\ "Maxime" )
2) Tambahkan beberapa elemen secara bersamaan dengan mengirimkan array lain atau urutan apa pun ke append (metode contentOf :)
students.append(contentsOf: ["Shakia" , "William"])
3) Untuk menambahkan elemen baru di tengah array dengan menggunakan metode insert (_: at :) untuk elemen tunggal
students.insert("Liam" , at:2 )
4) Menggunakan sisipan (contentOf: at :) untuk menyisipkan beberapa elemen dari koleksi lain atau array literal
students.insert(['Tim','TIM' at: 2 )
sumber