Dart dilini anlamak ve etkili bir şekilde kullanmak için atılacak bir sonraki adımı atıyorsunuz! “Dart Nedir?” makalemizde dilin genel bir bakışını elde ettikten sonra, şimdi “Dartlang Temelleri”ne odaklanarak, bu güçlü programlama dilinin temel bileşenlerini ayrıntılı bir şekilde keşfetmeye hazır olun. Bu makale serisinde, Dart’ın temel veri tiplerinden kontrol akışına, fonksiyonlardan nesne yönelimli programlamaya kadar uzanan konuları kapsayacağız. Şimdi, Dart dünyasındaki temelleri sağlam bir şekilde inşa etmeye başlayalım!
Yazdığınız kodları daha fazla pratik yapmak ve hemen test etmek için harika bir araç bulunmaktadır. Dart dilindeki kodlarınızı interaktif bir şekilde denemek için dartpad.dev sitesini kullanabilirsiniz. Bu platform, hızlı ve etkileşimli bir şekilde Dart kodlarınızı yazmanıza, çalıştırmanıza ve sonuçları görmek için ideal bir ortam sunar. Kodlarınızı burada test ederek, konseptleri daha iyi anlamak ve hemen uygulamaya geçmek için mükemmel bir fırsat elde edebilirsiniz.
void main()
Fonksiyonu: Dart Programlarının Başlangıcı
Dart dilinde, bir uygulamanın ana giriş noktasını belirleyen ve programın yürütülmeye başladığı yer olan void main()
fonksiyonu büyük öneme sahiptir. Bu fonksiyon, Dart uygulamalarının başlangıcını temsil eder ve birçok programın yürütme akışını kontrol eder.
1 2 3 4 5 6 | void main() { // Uygulamanın ana giriş noktası print("Merhaba, Dart!"); } |
Yukarıdaki örnekte görüldüğü gibi, void main()
fonksiyonu, genellikle ekrana bir şeyler yazdırmak gibi ilk temel işlemleri içerir. Dart dilinde, main
fonksiyonu otomatik olarak çalıştırılır ve bir değer döndürmez (void
olarak kabul edilir).
Bu fonksiyon, Dart uygulamalarında bir giriş noktası olarak kabul edildiği için, genellikle uygulama başladığında yapılması gereken işlemleri içerir. İleriki makalelerde, main
fonksiyonu içerisinde kontrol akışı, fonksiyon çağırma ve asenkron programlama gibi konulara daha detaylı olarak değineceğiz.
void main()
fonksiyonu, Dart programlamasının temel taşlarından biridir ve bir uygulamanın başlamasını sağlar. Şimdi, bu konsepti daha derinlemesine keşfetmeye hazır olun!
Değişken ve Sabit Tanımlama
Dart dilinde değişkenler ve sabitler, programlama sürecinde veri saklamak ve yönetmek için kullanılır. Bu konseptler, programcılara esneklik ve kontrol sağlar. İlk olarak, var
anahtarı ile değişken tanımlama ile başlayalım.
var
Anahtarı ile Değişken Tanımlama
var
anahtarı, Dart dilinde değişken tanımlamak için kullanılır. Bu anahtar kelime, bir değişkenin türünü belirtmeden, derleyicinin otomatik olarak tipini çıkarmasına izin verir.
1 2 3 4 5 6 7 8 9 10 11 | void main() { // Dart dilinde 'var' anahtarı, değişkenin tipini belirtmeden tanımlama imkanı sağlar. // Derleyici, değişkenin değerine bakarak tipini otomatik olarak çıkarır. var sayi = 42; // Bir tam sayı değeri var isim = "Ahmet"; // Bir metin değeri // Değişkenleri ekrana yazdırma işlemi print("Adı $isim yaşı $sayi "); } |
dynamic
Anahtarı ile Değişken Tanımlama
dynamic
anahtarı, Dart dilinde değişken tanımlamak için kullanılan bir özelliktir. Fakat, var
anahtarı ile karşılaştırıldığında önemli bir farkı vardır: dynamic
ile tanımlanan değişkenlerin türü çalışma zamanında belirlenir, yani derleme anında değil.
Bu durum, belirli bir değişkenin türünü tam olarak bilemediğimiz durumlar için oldukça kullanışlıdır. Özellikle dış kaynaklardan, örneğin bir JSON veri kaynağından alınan verilerle çalışırken, verinin yapısı önceden bilinmeyebilir. dynamic
tipi, bu tür senaryolarda esneklik sağlar ve derleyiciye tür hakkında daha fazla bilgi verme zorunluluğunu ortadan kaldırır.
Örneğin, bir JSON veri kaynağından gelen bilgileri işlerken, dynamic
tipi kullanabiliriz:
1 2 3 4 5 6 7 8 9 10 11 12 13 | void main(){ dynamic jsonData = {'name': 'John', 'age': 30, 'isStudent': false}; // Verinin tipini çalışma anında belirleme var isim = jsonData['name']; var yas = jsonData['age']; var ogrenciMi = jsonData['isStudent']; // Tip çıkarsama işlemi çalışma anında gerçekleşir print("İsim: $isim, Yaş: $yas, Öğrenci mi: $ogrenciMi"); } |
Veri Tipleri ile Değişken Tanımlama
Dart dilinde değişkenler, belirli bir veri tipine sahip olabilirler. Bu, programcıya değerlerle çalışırken beklenen veri türünü belirtme ve programın doğru şekilde çalışmasını sağlama olanağı tanır. İşte Dart’ta kullanılan temel veri tipleri ve bu tiplerle değişken tanımlama örnekleri:
String: Metinsel ifadeleri temsil eder. Örneğin:
1 2 3 4 5 6 7 8 | void main(){ String isim = "Ahmet"; print("Adı $isim"); } |
int: Tam sayıları temsil eder. Örneğin:
1 2 3 4 5 6 7 8 | void main(){ int yas = 25; print("Yaşı $yas"); } |
double: Ondalıklı sayıları temsil eder. Örneğin:
1 2 3 4 5 6 7 8 | void main(){ double ortalama = 7.5; print("Ortalama Değeri: $ortalama"); } |
bool: Mantıksal değerleri temsil eder, yani true
veya false
. Örneğin:
1 2 3 4 5 6 7 8 | void main(){ bool dogruMu = true; print("Doğru/Yanlış: $dogruMu"); } |
Ayrıca, Dart dilinde num
veri tipi, int
ve double
türlerini birleştiren bir sayı tipidir. Bu, sayılarla işlem yaparken daha fazla esneklik sağlar.
Örnek olarak, bir kişinin adını, yaşını ve öğrenci olup olmadığını içeren bir program düşünelim:
1 2 3 4 5 6 7 8 9 10 | void main(){ String isim = "Ahmet"; int yas = 25; bool ogrenciMi = false; print("İsim: $isim, Yaş: $yas, Öğrenci mi: $ogrenciMi"); } |
Bu örnekte, String
, int
, ve bool
veri tiplerini kullanarak bir kişinin bilgilerini içeren değişkenler tanımlanmış ve ekrana yazdırılmıştır. Veri tiplerini doğru şekilde kullanmak, programın beklenen davranışı sergilemesine yardımcı olur ve hataları önler.
Dart dilindeki yerleşik veri tiplerinin yanı sıra, dilin genel kullanımını destekleyen diğer tipleri de incelemek istiyorsanız, Dart’ın resmi belgeleri size detaylı bir bakış sunacaktır. Bu belgeler, dilin temel tiplerinden farklı olarak kullanılan özel tipler ve kütüphaneler hakkında bilgi sağlar. Dart’ın zengin ekosistemi içinde farklı tipleri anlamak, daha karmaşık programlama senaryolarında daha etkili bir şekilde çalışmanıza olanak tanır.
Bakınız: https://dart.dev/language/built-in-types
Dart dilinde değişkenlerin yanı sıra, sabitler de tanımlamak mümkündür.
const
ile Sabit Tanımlama
Sabitler, programın yaşam süresi boyunca değişmeyen ve derleme zamanında bilinen değerleri temsil eder. const
anahtarı, bu tür sabit değerlerin tanımlanmasında kullanılır. Derleme zamanında değeri belirlenen bir sabit, programın çalışma anında değiştirilemez ve bu nedenle değişkenlerden farklıdır.
1 2 3 4 5 6 7 8 9 10 11 | void main(){ const piSayisi = 3.14; const dunyaNufusu = 7800000000; print("$piSayisi"); print("Dünya Nüfusu: $dunyaNufusu"); } |
final
ile Sabit Tanımlama
Dart dilinde sabit değerler tanımlamak için kullanılan const
ifadesinin aksine, final
ifadesi çalışma zamanında değer atanabilen bir değişken tanımlamak için kullanılır. Bu, derleme zamanında bilinen ancak çalışma zamanında atanabilen değerleri temsil etmek için uygundur. İşte bir örnek:
1 2 3 4 5 6 7 8 9 10 | void main() { final int dunyaNufusu; dunyaNufusu=8000000000; print("Dünya Nüfusu: $dunyaNufusu"); } |
const ile final arasındaki fark nedir?
const
ve final
ifadeleri Dart dilinde farklı amaçlara hizmet eden iki kavramdır. İşte bu iki ifade arasındaki temel farklar:
const
İfadesi:
- Derleme Zamanı Sabitleri:
const
, derleme zamanında bilinen ve değeri değişmeyen (sabit) bir değeri ifade eder. Bu nedenle,const
ifadesi ile tanımlanan bir değişkenin değeri derleme sırasında bilinmelidir. - Compile-Time Constant (Derleme Zamanı Sabiti): Bir nesnenin
const
olabilmesi için, tüm içeriğinin derleme zamanında bilinir olması gerekir. Bu,const
ifadesi ile sadece belirli durumlarda kullanılabileceği anlamına gelir. - Sabit Liste ve Sabit Harita Oluşturma:
const
ifadesi genellikle sabit liste ve harita oluşturmak için kullanılır.
1 2 3 4 | const sabitListe = [1, 2, 3]; const sabitHarita = {'anahtar': 'değer'}; |
final
İfadesi:
- Çalışma Zamanında Değer Atanabilen Değişkenler:
final
ifadesi, derleme zamanında bilinen ancak çalışma zamanında değeri atanabilen bir değişkeni ifade eder. Yani,final
ifadesi ile tanımlanan bir değişkenin değeri derleme sırasında bilinmek zorunda değildir. - Run-Time Constant (Çalışma Zamanı Sabiti Değil): Bir nesnenin
final
olabilmesi için, içeriğinin derleme zamanında bilinmeyebilmesine izin verilir. Bu nedenle,final
ifadesi ile tanımlanan bir değişkenconst
gibi bir derleme zamanı sabiti olmayabilir. - Daha Geniş Kullanım Alanı:
final
ifadesi,const
ifadesine kıyasla daha geniş bir kullanım alanına sahiptir ve sıklıkla sınıf üyeleri veya metotlarda kullanılır.
1 2 3 | final int degisken = 42; |
Özetle, const
ifadesi derleme zamanında bilinen değerler ve sabitler için kullanılırken, final
ifadesi çalışma zamanında değeri atanabilen, ancak daha sonra değiştirilemeyen değişkenler için kullanılır.
[…] Dart Programlama Dili Temelleri […]