Dart Programlama Dilinde String Değişkenler
Dart & Flutter ile Çapraz Platform Android iOS Mobil Uygulama Geliştirme Dersleri #03
Videolu anlatım kanalımda: https://www.youtube.com/watch?v=2k25-4ddrxA&list=PLNRtC6HXL3EDnn4naNGqlQSFqGyMXXWow&index=7
Değişkenler: Programımızın hafızaya almasını istediğimiz değerleri tutan yapılardır. Örneğin, isim diye bir değişkenimiz olsun. Aşağıdaki şekilde = operatörü ile isim değişkenimize Ali değerini veriyoruz.
String isim = 'Ali';
Şimdi bu yapıyı inceleyelim. Değişkenimizin başına değişken türünü yazıyoruz. ‘Ali’ metinsel bir ifade olduğu için değişkenin türü metinsel yani (String) bir ifadedir ve String’in ilk harfi Dart dilinde bu şekilde büyük yazılır. Dart dili birçok programlama dili gibi büyük/küçük harfe duyarlıdır. String ifadesini farklı şekilde yazarsak hata alırız.
String (metinsel) değişken haricinde birkaç değişken tipi daha vardır. (Sayısal, yani tam sayı ve ondalıklı sayıları tutan integer ve double değişkenler gibi ya da doğru/yanlış türünden değerler tutan boolean gibi.) Sıradaki Flutter uygulamamızda sadece String değişkene ihtiyacımız olduğu için diğer değişken türlerini daha sonra işleyeceğiz.
isim ifadesi değişken adımızdır. Değişken adları küçük harfle yazılır. Bu bir zorunluluk değildir. Büyük harfle yazılsa da programımız değişken isimlerini algılar. Ancak programlama dillerinin daha okunaklı olması için artık genel kabul görmüş kuralları bulunur ve buna uymanız beklenir. Değişken adlarının küçük harflerle yazılması da bu kurallardan biridir. Böylece kodları okuduğumuz zaman isim ifadesinin ne olduğunu çok daha çabuk kavrayabiliriz. Eğer değişken adımız birden fazla kelimeden oluşuyorsa örneğin; tamIsim ya da onunTamIsmi gibi; bu durumda da ilk kelimeden sonra gelen kelimelerin ilk harfi büyük yazılır. Bu yazım şekline deve hörgüçlerinden esinlenerek lowerCamelCase denilmiştir. İfadelerimizi bu şekilde yazarak kodlarımızın daha okunaklı olmasını amaçlıyoruz. Ayrıca değişken isimlerinde büyük İ gibi Türkçe harfler bulunmaz.
Dikkat etmeniz gereken bir diğer kısım da; birden fazla kelimeden oluşan değişkenlerin kelimeleri bitişik yazılır. Boşluk bırakırsanız hata alırsınız: tam isim olmaz, tamIsim olmalı.
‘Ali’ değerini ise bu şekilde tırnak işaretleri arasına yazıyoruz. Sebebi de Ali’nin metinsel (String) bir değer olmasıdır. Daha önceden de bildiğimiz gibi String değerleri tek veya çift tırnak işaretleri arasına yazıyoruz.
Daha sonra da satırımızı noktalı virgül ile kapatıyoruz.
Artık isim ifadesini kullandığımızda programımız bunun ‘Ali’ olduğunu bilecek ve ona göre davranacak. Örneğin Ali ifadesini yazdırmak istediğimde, onun yerine isim ifadesini yazdırmam yeterli olacak.
print(isim);
Bu satır, konsolda Ali yazmasını sağlayacak.
isim değişkenini yazdırırken tırnak işareti kullanmıyor oluşumuz belki dikkatinizi çekmiştir. Değişkenler string bile olsa kullanılırken tırnaksız yazılırlar. Eğer tırnak işareti içine alırsak, programımız bu değişkeni değişken olarak değil, metinsel bir değer olarak algılar ve olduğu gibi yazar. Aşağıdaki şekilde yazarsak konsolda aldığımız çıktı Ali değil isim kelimesi olacaktır.
print('isim');
Çıktı: isim
‘Ali’ kısa bir değer olduğu için değişken kullanmak size işlevsel gelmemiş olabilir. Ancak aşağıdaki gibi uzun bir metni değişkenimize atadığımızda işlerimizi hayli kolaylaştırmış oluyoruz. Dünyanın en uzun soyadını uzunSoyad isimli bir değişkene atayalım.
String uzunSoyad = 'Wolfeschlegelsteinhausenberger dorffvoralternwareng ewissenhaftschaferswesenchafew arenwholgepflegeunds orgfaltigkeitbeschutzenvonange reifenduchihrraubgir iigfeindewelchevorralternzwolf tausendjahresvorandi eerscheinenbanderersteerdeemme shedrraumschiffgebra uchlichtalsseinursprungvonkraf tgestartseinlangefah rthinzwischensternartigraumauf dersuchenachdiestern welshegehabtbewohnbarplanetenk reisedrehensichundwo hinderneurassevanverstandigmen shlichkeittkonntevor tpflanzenundsicherfreunanleben slamdlichfreudeundru hemitnichteinfurchtvorangreife nvonandererintlligen tgeschopfsvonhinzwischensterna rtigraum';
Artık bu soyadını bir kez bu şekilde bir değişkene atadıktan sonra sadece değişken adını kullanarak programımızın başka bir yerinde kullanabiliriz. Yazdırmak istediğimizde:
print(uzunSoyad);
şeklinde yazmamız yeterli olacaktır.
Değişken adını tanımladığımız anda değer atamamız gerekmez. Önce tanımlayıp daha sonra da değer atayabiliriz:
String renkAdi;
Burada renkAdi isminde metinsel bir değişken tanımladım ama bir değer atamadan noktalı virgülle satırı kapattım.
Şimdi bu değişkene bir değer atayalım.
renkAdi = 'Kırmızı';
Artık renkAdi adlı değişkenimizin değeri ‘Kırmızı’ oldu. Başına değişken türü olan String’i yazmadığımıza dikkat edin. Bir kez tanımlandıktan sonra değer ataması yaparken ya da yeni bir değer verirken değişken türünü yazmayız. Eğer yazarsak aynı değişkeni iki defa tanımladığımız için hata alırız.
Şimdi ‘Kırmızı’ değerini atadığımız değişkenimizin değerini değiştirelim.
renkAdi = 'Mavi';
Bu şekilde verdiğimiz değeri değiştirebiliyoruz. Tek yapmamız gereken değişken adını yazıp eşittir operatörü ile yeni bir değer yazmak.
Değişkenler başka bir değişkene değer olarak atanabilir:
String degisken1 = 'Merhaba';
String degisken2 = degisken1;
print(degisken2);
degisken2'yi bu şekilde yazdırdığımızda bize çıktı olarak aşağıdaki ifadeyi verecektir:
// Merhaba
+ operatörü metinsel değişkenleri birleştirir:
String degisken1 = 'Selam';
String degisken2 = 'Merhaba';
String degisken3 = degisken1 + degisken2;
print(degisken3);
Konsol Çıktısı Aşağıdaki gibi olacaktır.
SelamMerhaba
Kelimeler arasında boşluk koymak istersek boşluk karakteri içeren bir string değer daha koymamız ve + operatörü ile birleştirmemiz gerekir.
String degisken1 = 'Selam';
String degisken2 = 'Merhaba';
String degisken3 = degisken1 + ' ' + degisken2;
print(degisken3);
Tırnak işaretleri arasına boşluk karakteri koyduk. Konsol çıktısı:
Selam Merhaba
+ operatörü değişkenlerimizi sadece tanımlarken değil, kullanırken de birleştirebilir. Örneğin print fonksiyonu içinde birleştirelim.
String degisken1 = 'Selam';
String degisken2 = 'Merhaba';
print(degisken1 + degisken2);
Konsol çıktısı:
SelamMerhaba
Yine araya boşluk koymak istersek boşluk karakteri içeren bir string ifade eklememiz gerekir.
print(degisken1 + ' ' + degisken2);// Konsol Çıktısı:// Selam Merhaba
String değişkenler ile değişkene atanmamış diğer string ifadelerin birlikte yazdırılması şu şekilde olur:
String degisken1 = 'Selam';
print(degisken1 + 'Merhaba');// Konsol Çıktısı:// SelamMerhaba
Araya boşluk koymak istersek daha önce yaptığımız gibi tırnak işaretleri arasına boşluk karakter içeren bir string ifade koyabiliriz ya da merhaba’dan önce bir karakter boşluk bırakabiliriz. Aşağıdaki iki print satırı da aynı çıktıyı verir.
String degisken1 = 'Selam';
print(degisken1 + ' Merhaba');
print(degisken1 + ' ' + 'Merhaba');// Konsol Çıktısı: // Selam Merhaba// Selam Merhaba
Hangisini tercih ediyorsanız onu kullanabilirsiniz. Eğer programınızda farklı bir durum söz konusu değilse genelde kısa olan ilki tercih edilir.
Değişkenleri String ifade içinde de kullanabiliriz. Bunun için $ işaretinden faydalanıyoruz. Tırnak işaretleri arasına, diğer ifade ile birlikte yazdırıyoruz.
String degisken1 = 'Selam';
print('Merhaba $degisken1');// Merhaba Selam
Değişken Tanımlama Kuralları:
- Değişken isimleri bir harfle başlamalıdır. Sayı ya da özel bir karakter ile başlayamaz. isim1 diye bir değişken olur. Ancak 1isim diye bir değişken tanımlanamaz.
- Önceden tanımlı Dart/Flutter ifadeleri değişken adı olarak atanamaz. Atanırsa programda hatalara sebep olabilir. Örneğin print ifadesi önceden tanımlı bir fonksiyona verildiği için değişken ismi olarak belirlenemez.
- alt çizgi(_) ve dolar işareti ($) dışında özel karakter içeremez.
- Değişken isimlerinde Türkçe karakter kullanılamaz.
- Değişken ismi içinde boşluk karakteri olamaz. Birden fazla kelimeden oluşuyorsa kelimeler bitişik yazılabilir.
Ekler:
var bildirimi değişken tipini algılamayı programa bırakır ve programımızın değişken tipini otomatik algılayıp ona göre işlem yapmasını sağlar.
var isim = 'Ali';
Bu örnekte String yerine var yazdık. Artık programımız isim değişkeninin aldığı değerin bir metin olduğunu görüp onu String olarak algılayacaktır.
var bildirimini kullanmak ya da değişken tipini yazmak özel durumlar haricinde sizin tercihinizdir. Ancak bazı Dart kaynakları bir değişkenin tipini kesin olarak biliyorsanız, var bildirimi yerine değişken tipini yazmamızın daha iyi olacağını söylemekte.
Kaynak Udemy | Dart & Flutter & Firebase ile Web - Masaüstü ve Mobil için Uygulama Geliştirme Kursu: https://www.udemy.com/course/flutterdersleri