Menu
Coddy logo textTech

Dart Hile Sayfası

Son güncelleme

Hello World ve program yapısı

Her Dart programı üst düzey main fonksiyonunda başlar.

İşlemSöz dizimi
Giriş noktasıvoid main() { ... }
Bir satır yazdırprint("Hello, World!");
Dize interpolasyonuprint("Hi $name");
İnterpolasyonda ifadeprint("Sum: ${a + b}");
Yorum// this is a comment
Çok satırlı yorum/* ... */
Bir kütüphaneyi içe aktarimport 'dart:math';
Bir dosyayı çalıştırdart run main.dart

Değişkenler ve tipler

Dart statik tiplidir ama var ile tipleri çıkarabilir.

İşlemSöz dizimi
Çıkarımlı değişkenvar age = 30;
Açık tipint age = 30;
Derleme zamanı sabiticonst pi = 3.14;
Çalışma zamanı sabitifinal name = getName();
Temel tiplerint, double, String, bool
Dinamik tipdynamic x = 5;
Tip dönüşümüint.parse("42"), n.toString()
Tipi kontrol etx is String, x as String

Null safety

Tipler varsayılan olarak null olamaz; null'a izin vermek için ? ekleyin.

İşlemSöz dizimi
Null olamayan (varsayılan)int count = 0;
Null olabilen tipString? name;
Null'a duyarlı erişimuser?.name
Null birleştirmename ?? "default"
Null birleştirmeli atamaname ??= "default";
Null değil iddiasıname!
Geç başlatma (late)late String value;
Null'a duyarlı spread[...?maybeList]

Dizeler

Dizeler tek, çift ve üçlü tırnağı destekler.

İşlemSöz dizimi
Uzunluks.length
Büyük / küçük harfs.toUpperCase(), s.toLowerCase()
İnterpolasyon"Total: $price"
Birleştir"foo" + "bar"
İçerir mis.contains("ell")
İle başlar / biter mis.startsWith("he")
Böl"a,b,c".split(",")
Değiştirs.replaceAll("a", "b")
Alt dizes.substring(0, 3)
Kırps.trim()

Koleksiyonlar (List, Map, Set)

Değişmez (literal) söz dizimine sahip üç temel koleksiyon tipi.

İşlemSöz dizimi
List değişmezivar nums = [1, 2, 3];
Listeye eklenums.add(4);
Eriş / uzunluknums[0], nums.length
Map / wherenums.map((n) => n * 2), nums.where((n) => n > 1)
Map değişmezivar ages = {"Ada": 30};
Map erişimiages["Ada"]
Set değişmezivar ids = {1, 2, 3};
Spread operatörüvar all = [...a, ...b];
Koleksiyonda if / for[if (show) 1, for (n in xs) n]

Kontrol akışı

Koşullar parantez içine girer; switch desenleri destekler.

İşlemSöz dizimi
If / elseif (x > 0) { ... } else { ... }
Üçlü (ternary)var r = x > 0 ? "pos" : "neg";
Switchswitch (n) { case 1: ...; default: ... }
For döngüsüfor (var i = 0; i < 10; i++) { ... }
For-in döngüsüfor (var item in items) { ... }
forEachitems.forEach((x) => print(x));
While döngüsüwhile (x < 100) { ... }
Do-whiledo { ... } while (x < 100);
Break / continuebreak;, continue;

Fonksiyonlar

Fonksiyonlar birinci sınıftır; ok söz dizimi tek ifadeleri kısaltır.

İşlemSöz dizimi
Bir fonksiyon tanımlaint add(int a, int b) { return a + b; }
Ok fonksiyonuint square(int x) => x * x;
İsteğe bağlı konumsalvoid log(String m, [int? code]) { ... }
Adlandırılmış parametrelervoid box({int w = 0, int h = 0}) { ... }
Zorunlu adlandırılmışvoid box({required int w}) { ... }
Anonim fonksiyonvar f = (x) => x * 2;
Argüman olarak geçirnums.map((n) => n * 2)
Typedeftypedef IntOp = int Function(int);

Sınıflar ve yapıcılar (constructor)

Sınıflar durum ve davranışı tutar; yapıcılar birkaç biçimde gelir.

İşlemSöz dizimi
Bir sınıf tanımlaclass Point { int x; int y; }
YapıcıPoint(this.x, this.y);
Adlandırılmış yapıcıPoint.origin() : x = 0, y = 0;
Örnek oluşturvar p = Point(1, 2);
Metotdouble dist() { ... }
Getterint get area => w * h;
Kalıtımclass Circle extends Shape { ... }
super çağırsuper(args)
Soyut (abstract) sınıfabstract class Shape { ... }
Arayüz uygulaclass Dog implements Animal { ... }

Async (Future / async-await)

Future'lar daha sonra kullanılabilir olacak değerleri temsil eder; await onlar çözülene kadar duraklatır.

İşlemSöz dizimi
Async fonksiyonFuture<int> load() async { ... }
Bir future'ı await etvar data = await load();
Bir değer döndürBir async fonksiyonun içinde return 42;
Gecikmeawait Future.delayed(Duration(seconds: 1));
Hataları işletry { await load(); } catch (e) { ... }
Then zincirlemeload().then((v) => print(v));
Paralel çalıştırawait Future.wait([a(), b()]);
Async streamawait for (var x in stream) { ... }

En çok başvurduğunuz Dart söz dizimi tek sayfada. Bu Dart hile sayfası, temel dil için hızlı bir başvurudur - değişkenler ve tipler, null safety, dizeler, koleksiyonlar, kontrol akışı, fonksiyonlar, sınıflar ve Flutter'ın arkasındaki uygulamaları yazmak için kullandığınız future'lar ve async/await.

Buradaki her şey standart Dart'tır ve resmi SDK üzerinde çalışır. İhtiyacınız olanı kopyalayın ya da her kod parçasını Dart playground'da canlı deneyin - kurulum gerekmez.

Dart hile sayfası SSS

Bu Dart hile sayfası ücretsiz mi?
Evet. Bu Dart hile sayfası tamamen ücretsizdir ve kayıt gerektirmez. Yer imlerinize ekleyin ve bir null safety operatörüne, koleksiyon metoduna ya da async desenine bakmanız gerektiğinde geri dönün.
Dart'ta null safety nasıl çalışır?
Dart'ta her tip varsayılan olarak null olamaz - int count asla null tutamaz. Null'a izin vermek için bir ? eklersiniz (String? name) ve derleyici sizi null durumunu işlemeye zorlar. Yardımcılar bunu özlü kılar: null'a duyarlı erişim için ?., yedek bir değer için ?? ve emin olduğunuzda bir değerin null olmadığını iddia etmek için !. Bu, null hatalarını çalışma zamanı yerine derleme zamanında yakalar.
Future nedir ve async ile await nasıl çalışır?
Bir Future, bir ağ çağrısının sonucu gibi daha sonra kullanılabilir olacak bir değeri temsil eder. Bir fonksiyonu async olarak işaretlemek await kullanmanızı sağlar; bu da future tamamlanana kadar çalışmayı duraklatır ve ardından size değeri verir - böylece yukarıdan aşağıya senkron kod gibi okunan asenkron kod yazarsınız. Hataları işlemek için await'leri try/catch ile sarın.
Dart'ı çevrimiçi olarak deneyebilir miyim?
Evet. Dart playground'u açarak bu hile sayfasındaki herhangi bir kod parçasını tarayıcınızda çalıştırabilirsiniz - kurmanız gereken bir SDK yok. Yapı istediğinizde, Coddy'nin ücretsiz etkileşimli Dart kursu sizi null safety ve koleksiyonlardan sınıflara ve async/await'e adım adım götürür.
Bu hile sayfası yeni başlayanlar için uygun mu?
Evet. En yaygın konulardan (değişkenler, null safety, kontrol akışı) gelişmiş olanlara (sınıflar, future'lar, async/await) doğru düzenlenmiştir, böylece üstteki bölümleri ilk günden kullanabilir ve zamanla geri kalanına geçebilirsiniz.
Coddy programming languages illustration

Coddy ile Dart öğren

BAŞLA