Dilimleri Yeniden Dizilere Dönüştürme
Bir dilimi bağımsız bir diziye dönüştürün.
Dilimleri Yeniden Dizilere Dönüştürme, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.
Slice'lar Dizi Değildir
Bir ArraySlice, Array'den farklı bir türdür. Birçok API somut bir Array bekler; bu nedenle çoğu zaman dönüştürmeniz gerekir.
let original = [1, 2, 3, 4, 5]
let slice = original[1..<4]
print(type(of: slice))Bir Slice'ı Diziye Dönüştürme
Kopyalanmış öğelere ve sıfır tabanlı dizinlere sahip yeni, bağımsız bir dizi oluşturmak için slice'ı Array(...) başlatıcısının içine sarın.
let original = [10, 20, 30, 40, 50]
let slice = original[2..<5]
let array = Array(slice)
print(array)
print(type(of: array))Dizinler Sıfıra Döner
Dönüştürmeden sonra yeni dizi, ana dizinleri koruyan slice'ın aksine 0'dan yeniden dizinlenir.
let original = [1, 2, 3, 4, 5]
let slice = original[3..<5]
let copy = Array(slice)
print("slice start:", slice.startIndex)
print("array start:", copy.startIndex)Dönüştürme Depolama Alanını Kopyalar
Dönüştürme bir kopya oluşturur. Yeni dizi artık ana diziyle depolama alanını paylaşmaz; bu nedenle onu değiştirmek original diziyi etkilemez.
let original = [1, 2, 3, 4]
var copy = Array(original[1..<3])
copy[0] = 999
print("original:", original)
print("copy:", copy)İşlevlerden Dizi Döndürme
Bir işlev bir dizinin bir bölümünü döndürdüğünde, çağıranların normal bir Array alması için slice'ı dönüştürün.
func firstThree(of nums: [Int]) -> [Int] {
return Array(nums.prefix(3))
}
print(firstThree(of: [9, 8, 7, 6, 5]))Dizi Parametrelerine Aktarma
Bir API parametresinin türü [Int] ise slice'ı aktarmadan önce dönüştürmelisiniz.
func total(_ values: [Int]) -> Int {
return values.reduce(0, +)
}
let data = [1, 2, 3, 4, 5]
let result = total(Array(data[1..<4]))
print(result)Dönüştürmenin Gerekli Olmadığı Durumlar
İşleviniz genel bir Sequence veya Collection kabul ediyorsa dilimi dönüştürmeden doğrudan geçirebilirsiniz.
func describe<S: Sequence>(_ s: S) where S.Element == Int {
print(Array(s))
}
let arr = [2, 4, 6, 8]
describe(arr[1..<3])Bellek Kullanımı Dengesi
Dilimler kopyalamayı önler ve üst dizinin depolama alanını canlı tutar. Büyük bir dizinin küçük bir dilimini uzun süre tutuyorsanız büyük arabelleğin serbest bırakılabilmesi için bunu bir diziye dönüştürün.
let huge = Array(1...1000)
let keep = Array(huge[0..<3]) // small independent copy
print(keep)Set'e Dönüştürme
Bir dilimi Set gibi diğer koleksiyon başlatıcılarına da aktarabilirsiniz.
let arr = [1, 2, 2, 3, 3, 3]
let uniqueTail = Set(arr[2..<6])
print(uniqueTail.sorted())Gidiş Dönüş
Önce dilimlemek, sonra dönüştürmek ve yeniden dilimlemek tamamen uygundur. Her dönüştürme açık ve öngörülebilirdir.
let arr = [10, 20, 30, 40, 50]
let a = Array(arr[1..<4])
let b = Array(a[0..<2])
print(a)
print(b)En İyi Uygulama
Hesaplama sırasında dilimlerle çalışmaya devam edin ve yalnızca sonucu depoladığınız veya döndürdüğünüz sınır noktasında Array'e dönüştürün.
let arr = [3, 1, 4, 1, 5, 9, 2]
let top3 = Array(arr.sorted(by: >)[0..<3])
print(top3)Kısa Kontrol
Dilim dönüştürmeyi deneyin.
Özet
Bir ArraySlice'i sıfır tabanlı dizinlere ve kopyalanmış depolama alanına sahip bağımsız bir diziye dönüştürmek için Array(slice) kullanın. API sınırlarında dönüştürün; ek kopyaları önlemek için hesaplama sırasında dilimleri koruyun.
let s = [1, 2, 3, 4, 5][2..<5]
let a = Array(s)
print(a, a.startIndex)Sıkça Sorulan Sorular
“Dilimleri Yeniden Dizilere Dönüştürme” dersi ücretsiz mi?
Evet — “Dilimleri Yeniden Dizilere Dönüştürme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.
“Dilimleri Yeniden Dizilere Dönüştürme” dersinde ne öğreneceğim?
Bir dilimi bağımsız bir diziye dönüştürün. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Swift Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Dilimleri Yeniden Dizilere Dönüştürme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Aralıklarla Dilim Oluşturma
- ArraySlice Dizin Anlamı
- Dilimleri Yeniden Dizilere Dönüştürme
- prefix, suffix ve dropFirst