Koleksiyonlar (Collections)
Dart, listeler, küme ve harita koleksiyonlarına yerleşik destek sunar. Tür koleksiyonlardaki türleri yapılandırmak için Generics konusuna göz atabilirsiniz.
Listeler (List)
Belki de neredeyse her programlama dilinde en yaygın koleksiyon, dizi veya sıralı nesneler grubudur. Dart'ta diziler List nesneleridir, bu nedenle çoğu insan onlara sadece "lists" der.
Dart listeleri, virgülle ayrılmış bir ifade veya değer listesi ile köşeli parantez içinde belirtilen listelerdir ([]
). İşte basit bir Dart liste örneği:
Not
Dart, listenin türünün
List<int>
olduğunu çıkarır. Bu liste üzerine tamsayı olmayan nesneler eklemeye çalışırsanız, analizör veya çalışma zamanı bir hata bildirir. Daha fazla bilgi için tip çıkarımını inceleyin.
Dart koleksiyon literallerinde son öğeden sonra bir virgül ekleyebilirsiniz. Bu virgül koleksiyonu etkilemez, ancak kopyala-yapıştır hatalarını önlemeye yardımcı olabilir.
Listeler, 0'dan başlayan bir dizinle kullanılır, 0 ilk değerin dizini ve list.length - 1 son değerin dizinidir. Bir listenin uzunluğunu .length özelliğini kullanarak alabilir ve bir listenin değerlerine köşeli parantez operatörünü kullanarak erişebilirsiniz:
Derleme zamanı sabiti bir liste oluşturmak için, liste literali önüne const ekleyin:
Daha fazla bilgi için listeler bölümüne bakın.
Kümeler (Set)
Dart'ta bir küme, benzersiz öğelerin sırasız bir koleksiyonudur. Dart'ın kümelere yönelik desteği, küme literalleri ve Set türü tarafından sağlanır.
İşte küme literali kullanılarak oluşturulmuş basit bir Dart kümesi:
Not
Dart, halojenlerin Set<String> türünde olduğunu çıkarır. Eğer kümeye yanlış türde bir değer eklemeye çalışırsanız, analizör veya çalışma zamanı bir hata verecektir. Daha fazla bilgi için tip çıkarımını inceleyin.
Boş bir küme oluşturmak için, bir tür argümanını takiben {} kullanın veya {}'yi Set türünde bir değişkene atayın:
Set mi yoksa harita mı? Harita literallerinin sözdizimi, küme literallerinin sözdizimine benzer. Harita literalleri önce geldiği için, {}
varsayılan olarak Map türüne sahiptir. {}
veya ona atanan değişken üzerinde tür açıklamasını unutursanız, Dart {}
veya ona atanan değişken için Map<dynamic, dynamic>
türünde bir nesne oluşturur.
Varolan bir kümeye add()
veya addAll()
yöntemleri kullanarak öğe ekleyebilirsiniz:
Kümedeki öğelerin sayısını almak için .length'yi kullanın:
Derleme zamanı sabiti bir küme oluşturmak için, küme literali önüne const ekleyin:
Daha fazla bilgi için setler bölümüne bakın.
Haritalar (Maps)
Genel olarak bir harita, anahtarları ve değerleri ilişkilendiren bir nesnedir. Hem anahtarlar hem de değerler her türde nesne olabilir. Her anahtar yalnızca bir kez geçer, ancak aynı değeri birden çok kez kullanabilirsiniz. Dart'ın haritalara yönelik desteği, harita literalleri ve Map
türü tarafından sağlanır.
İşte harita literalleri kullanılarak oluşturulmuş basit birkaç Dart haritası:
Not: Dart, hediyelerin Map<String, String>
türünde olduğunu ve soyluGazların Map<int, String>
türünde olduğunu çıkarır. Haritaya yanlış türde bir değer eklemeye çalışırsanız, analizör veya çalışma zamanı bir hata verecektir. Daha fazla bilgi için tip çıkarımını inceleyin.
Aynı nesneleri bir Map
yapıcı kullanarak oluşturabilirsiniz:
Not
C# veya Java gibi dillerden geliyorsanız,
new Map()
yerine sadeceMap()
görmeyi bekleyebilirsiniz. Dart'tanew
anahtar kelimesi isteğe bağlıdır. Ayrıntılar için constructor kullanımına bakın.
Varolan bir haritaya yeni bir anahtar-değer çifti eklemek için subscript assignment operator ([]=
) kullanın:
Bir haritadan bir değeri subscript operator ([]
) kullanarak alabilirsiniz:
Bir haritada olmayan bir anahtarı ararsanız, null değeri alırsınız:
Key-value çiftlerinin sayısını almak için .length
kullanın:
Derleme zamanı sabiti bir harita oluşturmak için, harita literali önüne const
ekleyin:
Daha fazla bilgi için haritalar bölümüne bakın.
Operatörler (Operators)
Yayılma operatörleri (Spread operatos)
Dart, List
, Map
ve Set
literallerinde yayılma operatörünü (...
) ve null bilincinden dolayı yayılma operatörünü (...?
) destekler. Yayılma operatörleri, birden çok değeri bir koleksiyona eklemenin özlü bir yolunu sağlar.
Örneğin, yayılma operatörünü (...
) kullanarak bir listenin tüm değerlerini başka bir liste ekleyebilirsiniz:
Eğer yayılma operatörünün sağındaki ifade null olabilirse, null bilincinden dolayı bir hata önlemek için null bilincinden haberdar yayılma operatörünü (...?
) kullanabilirsiniz:
Yayılma operatörünü kullanmanın ayrıntıları ve örnekleri için yayılma operatörü önerisine bakın.
Kontrol Akış Operatörleri
Dart, List
, Map
ve Set
literallerinde kullanılmak üzere koleksiyon if
ve koleksiyon for
'u sunar. Bu operatörleri kullanarak koşullar (if
) ve tekrarlamalar (for
) kullanarak koleksiyonlar oluşturabilirsiniz.
İşte koleksiyon if
'i kullanarak üç veya dört öğeli bir liste oluşturmanın bir örneği:
Dart aynı zamanda koleksiyon içinde if-case'i de destekler:
İşte koleksiyon for
'u kullanarak bir listedeki öğeleri başka bir liste eklemeden önce listeyi manipüle etmenin bir örneği:
Daha fazla ayrıntı ve koleksiyon if
ve for
kullanma örnekleri için kontrol akış koleksiyonları önerisine bakın.
Last updated