Demek bir Kotlin programcısı olmak istiyorsun?
Ol vakit, doğru yerdesiniz!
İşbu silsile-i ders, seni Kotlin’in temellerinden alacak ve lisanın asli mefhumlarını nazikçe tanıtarak ehliyetli bir Kotlin geliştiricisi olma yolunda ilerletecektir. Görmüş geçirmiş bir gazi olsan bile, temelleri bilmen selim bir idrak için lazımdır ki kabiliyetlerini mümkün olan en iyi seviyeye çıkarabilesin.
Senin maceran işte tam burada, değişenleri, ibareleri, ve nev’leri izah ettiğimiz Bab 1’de başlıyor.
Haydi gayrete gelelim!
Değişenlerin Takdimi
Bu bir çemberdir.
Binlerce sene evvelinde, Arşimet isimli bir Yunanlı, bir çemberin harici uzunluğunun, çevresi de denir, nasıl ölçüleceğini kabaca izah etti. Muhtemelen idadi tahsilinizdeki keyifli günlerinizden muadeleyi hatırlarsınız:
“Bir çemberin çevresi 2 kere π kere yarıçap ibaresinin neticesine eşittir.”
Üstteki resimde r bir sayı değildir. Yarıçapa işaret eden bir harftir ki çemberin merkezinden çevresine olan mesafedir.
Biz r’ye değişen deriz, çünkü yarıçap tebdil edilebilir, çemberin ebatının tebdiliyle o da değişir. Başka bir ifadeyle, değişen r kendisi bir sayı değildir, bir çeşit “sepettir” ki bir sayıyı ihtiva eder – herhangi bir sayıyı.
Değişenler sadece Cebir ve Hendese için değildir. Programlama da daima aynı maksadla kullanılırlar: kıymetleri ihtiva etmek. Kotlin’de, bir değişenin ibdası ve bir sayının o değişene tayini aşağıdaki gibidir:
var r = 5.2Bu kod tek satırda iki iş yapmaktadır aslında.
var ryazdığımızdardeğişeninin varlığını ilan ediyoruz demektir. Bir değişeninin varlığını ilan etmeği bir sepetin ibdası olarak tahayyül edebilirsiniz.r = 5.2yazdığımızdardeğişenine5.2kıymetini tayin ediyor demektir. Bir başka deyişle, 5.2` sayısını sepete koyuyoruz demektir.Haydi aşağıdaki kodun 3 temel kısmını ele alalım:
Üstteki kodda…
varbir remizdir ki Kotlin’e yeni bir değişen ibda eylemesini söyler.rdeğişenin ismidir. Bazen bunu değişenin hüviyeti olarakta duyabilirsiniz.5.2sayısı tayin edilen kıymettir.
var Kotlin tahsilimiz müddetince talim edeceğimiz bir çok remizden yalnızca bir tanesidir. Hatırda tutulması lazım gelen mühim mesele odur ki sana ait olan şeylerde remizleri kullanamazsın. Misalen, var remzini bir değişen ismi olarak kullanamazsın.
var var = 5HataBakı remizlere müstakbel bablarda şahit olacağız.
Değişenlerin Tekraren Tayini
Üstte şerh düştüğümüz üzere 2πr muadelesinde
rdeğişeni faklı hallerde faklı sayıları temsil edebilir.Kotlin’de
r’nin farklı bir sayıyı temsil etmesini istersen, aşağıdaki gösterildiği gibi, tekrar tayin edebilirsin:var r = 5.2 r = 6.7Tekraren tayin etme halinde
varremzini yazmamıza lüzum yoktur çünkü değişen evvelki satırda ilan edilmiştir.Tekraren Tayin Edilemeyen Değişenler
Çevre muadelesine tekrar bakalım:
Yunan harfi olan
π(“pay” şeklinde telaffuz edilir) değişen olanr’den pek farklıdır.rherhangi bir sayıyı ihtiva edebileceği halde,πsadece muayyen bir sayıyı ihtiva edebilir ki 3.14 diye kısaltacağız.Aynı şekilde, Kotlin ile programlarken, baz haller vardır ki bir değişenin hiçbir zaman değişmemesini isteriz.
İşbu hallerde,
varremzi yerinevalremzi ile ilan ederiz, misalen:val π = 3.14Şimdi,
π‘yi tekrar tayin etmeğe teşebbüs edersek, bir hata ile karşılaşırız:val π = 3.14 π = 1.23HataBu sepete bir kere bir şey koydun mu, bir daha başka bir şey ile değiştiremezsin!
Değişenlerini
valile ilan etmek istikbalde kazaen değişmemesi lazım gelen bir şeyi tebdil etmene mani olacak selim bir usuldür. Nitekim,valile başlayıp zaruri hallerdevarremzine tebdilen geçmek tercih edilmelidir.Değişenlerin İsimlendirilmesi
Kodumuzda
πharfini kullanmak eğlenceliydi lakin Yunanistan’da ikamet etmiyorsanız, işbu harf muhtemelen klavyenizde yoktur. Bu andan sonra, herkesin hayatını kolaylaştırıppidiye isimlendireceğiz. İlaveten,ryerine,yariCapdiye isimlendireceğiz, bu sayede sonradan projeye dahil olan geliştiriciler şüphesiz işbu değişenlerin ne olduğunu bilebilecekler – diğerlerinirharfinin neyi işaret ettiğini tahmin etmeğe mecbur etmek istemeyiz!Baz hallerde bir değişenin tarifi için birden fazla harfe ihtiyaç olur. Kotlin’de, örfen takip edilen kaidedir ki ilk kelime küçük harfle, sonraki harfler büyük harfle başlatılır, misalen:
var cemberinYariCapi = 5.2Şu halde değişenlerin ilanı ve tebdili temellerini talim ettiğinize göre, basit sayılardan fazlasını tayin etmeğe başlayabiliriz – müşkül hesapların neticelerini tayin etmeğe başlayabiliriz, çevre muadelemiz gibi! Haydi ibareleri talim edelim!
Kotlin’de İbareler ve İfadeler
Haydi şu muadeleye tekrar bakalım:
Evvelden
piveyariCapdeğişenlerini ibda etmiştik, şimdi Kotlin’in bizim yerimize hesap yapmasını sağlayacak ve herhangi bir çemberin çevresini elde edeceğiz, her ne kadar büyük bir daire olursa olsun.Tek yapmamız gereken şunları çarpmaktır:
2,pi, veyariCap. Kotlin’de, programlama lisanlarının ekserisinde olduğu gibi, çarpmaxile gösterilmez. Bir yıldız işareti ile gösterilir:*, ol sebeble kodumuz böyle görünebilir:var yariCap = 5.2 val pi = 3.14 val cevre = 2 * pi * yariCapŞimdiye kadar basit kıymetleri tayin ettik -
5.2ve3.14gibi. İlk defa mûdil bir şeyin tayinini yapıyoruz:2 * pi * yariCap.Kotlin bunu gördüğünde, senin için neticeyi basitçe hesaplar -
2kerepikereyariCaphesabını yapar, ve sonra, elbette, neticeyi alır vecevredeğişenine tayin eder. İşbu meselede (yarıçapın5.2olduğu),cevredeğişeni32.656olur.
2 * pi * yariCaphesaplanabilir ve neticesi bir kıymet olduğu için işlenebilir olduğunu söyleriz. İşlenebilir olan koda ibare denilir. Aşağıda ibarelerin bir kaç misalini tedkik edelim:
2 + 32 * pi * rpi * r * rDeğişenler kendileri de ibarelerdir - onlar işlenir ve netice taşıdıkları kıymettir:
yariCappiElinizle bir sayı yazdığınızda (değişen yazmayla karşılaştırıldığında), ona halis sayı denir. Halisler kendileri de ibarelerdir - onlar işlendiklerinde netice kendileridir! İşte bir kaç misal:
25.23.14İşbu misallerin hepsi bir kıymete işlenir. Eğer bir kıymete işlenemeyen bir kodunuz varsa, ol koda ifade denilir.
İbare ve ifade tefriki için kullanabileceğiniz temel bir kaide:
Kaide: Eğer bir parça kodu bir değişene tayin edebilirseniz ibaredir. Aksi halde ifadedir.
Haydi bu kaideyi üstteki üç listenin her birindeki ilk ibareye (
2 + 3,yariCap, ve2) tatbik edelim. Aşağıda işaretlenen kısımlar ibarelerdir:val a = 2 + 3 val b = yariCap val c = 2Her birinin bir değişene tayini mümkün olduğundan bunlar birer ibaredirler.
Şimdiye kadar gördüğümüz tek ifade tayin ifadesidir, misal
val pi = 3.14. Temel kaidemizi bir tayin ifadesine tatbik etmek zihin bulandırabilir, elbette, tayin üstüne tayin kullanıyoruz (cık cık!):val a = val pi = 3.14HataEğer bunu denerseniz, Kotlin size faydalı bir hata mesajı verir, “Bir ibare bekleniyor”. Bu hatayı görürseniz bilin ki Kotlin’in bir ibare istediği yerde bir ifade kullanmışsınızdır.
İbareler ve ifadeler arasındaki tefrik Kotlin’i talim ettiğiniz vetire müddetince mühimdir ve işbu ıstılahları bu kitapta sıkça kullanacağız.
Şimdiye kadar, halisleri de tayin etsek, mûdil ibareleri de tayin etsek sadece sayıları değişenlere tayin ettik. Lakin değişenlerin tutabileceği ziyadesiyle şeyler var! Haydi şimdi bunların bazılarını keşf edelim.
Neviler: Kıymetlerin Muhtelif Türleri
Kotlin’de, farklı değişenler muhtelif türlerden kıymetleri tutabilirler. Bir değişenin tuttuğu kıymetin türü o değişenin nevisidir.
Haydi
yariCapvepideğişenlerine tekrar bir bakalım:var yariCap = 5.2 val pi = 3.14İşbu halde,
yariCapvepi‘nin her ikisi de noktalı sayıları temsil ederler ki o da bir nevidir ve Kotlin onuDoubleolarak isimlendirir. Eğer isterseniz, Kotlin’e değişenin nevini kendiniz de bildirebilirsiniz, işte böyle:var yariCap: Double = 5.2 val pi: Double = 3.14Yukarıdakini yaptığımızda, nevi zahiren belirtiyoruz.
Sıklıkla, bir değişenin nevini kendiniz belirtmeniz gerekmez. O halde, Kotlin elinden gelenin en iyisini yapıp değişene tayin ettiğiniz kıymetten nevi idrak etmeğe çalışacaktır. İşbu gayrete idrak-i nevi denilir.
Hülasa, bunu yazarsak…
var yariCap = 5.2…Kotlin’de
5.2‘nin birDoubleolduğunu anlayacaktır, bu sayede ihtiyarenyariCap‘un nevi olarakDouble‘ı kullanacaktır.
Double‘a ilaveten, diğer temel neviler vardır ki bilinmeleri elzemdir! Haydi onların bazılarını inceleyelim şimdi de.Tamsayılar
Şimdiye kadar kesirli sayıları kullandık,
5.2ve3.14gibi. Fakat kesirsiz bir sayı da kullanabilirsiniz,5ya3gibi.Böyle sayılara tamsayılar denilir, ve Kotlin’de tamsayıların nevi
Intdiye isimlendirilir. İşte tamsayı bir değişenin ibdasına misal:val kopeklerinAdedi: Int = 3Hükmiler
Bazı hallerde bir değişenin aktif ya pasif, evet ya hayır, doğru ya yanlış ilh. gibi kıymetleri tutmasını istersiniz.
Ol hallerde,
Booleannevisine haiz bir değişen istersiniz kiBooleanKotlin’de hükmi nevilerinin ismidir.val dunyaKuredir: Boolean = true val dunyeLevhadir: Boolean = falseNeden
Booleandiye isimlendirilmiştir?İsmini bir İngiliz olan ve 1800’lerde yaşamış Goorge Boole adlı şahıstan almıştır ki kendisi cebirin sayılar yerine doğru ve yanlış hükmilerle çalışan bir dalını kurmuştur.
Mükemmel.
Metinler
Bir değişende yazı da saklayabilirsiniz. Programcıların işbu nevi için kullandığı süslü kelime metin‘dir, çünkü ol değişen bir takım harfler, sayılar ve alametler ihtiva eder.
Kotlin’de işbu nevinin ismi
String‘dir, ve birStringdeğişenini aşağıdaki gibi ibda edebilirsiniz:val metin: String = "Bu bir metindir"Diğer Neviler
Zikr edilenler değişenlerin bazı âdi nevileridir. Bu kitap müddetince, kendi nevilerimizi - sınıflar - inşa etme usullerini öğreneceğiz ki onlar dahi işbu mezkur basit nevilerin üzerine bina edilirler.
Neviler ve Tekraren Tayin Edilmeleri
Kotlin’de bir değişenin nevisi kodu yazarken tesis edilir ve bir daha değişmez (kodu tekrar yazmadıkça). Ol sebeple, buna sabit yazma deriz. Bir kere bir değişenin nevisi ilan edildi mi, harici bir neviden bir kıymet ol değişene tayin edilemez. Misalen, eğer bir
Intnevisinde değişen ibda edersek, sonradan ol değişene tekrarenStringnevisinde bir kıymet tayin edemeyiz.var kopeklerinAdedi: Int = 5 kopeklerinAdedi = "beş"Hataİstikbalde, işbu sabit yazmanın değişenlerin tekraren tayininden başka hangi meselelere sebep olduğunu göreceğiz. İlaveten bazı nevilerin nasıl alt nevileri olabileceğini de göreceğiz.
Lakin lazım gelenden ileri gidiyoruz - şimdilik, işbu babı nihayetlendirelim!
Hülasa
İşbu babda, aşağıdakileri inceledik:
- Değişenler
- Tekraren tayin edilebilir değişenler için
varkullanılması- Bitebdil değişenler için
valkullanılması- İbareler ve İfadeler
- İbareler işlenebilir ve bir kıymetle sonuçlanır.
- İfadeler işlenmezler ve bir kıymetle sonuçlanmazlar.
- Bir kod parçasını bir değişene tayin etmeği deneyebilir ve onun ifade mi ibare mi olduğunu görebilirsiniz.
- Basit Neviler
- Sayı nevileri
DoubleveIntgibi.- Hükmi kıymetler olan
doğruveyanlışiçinBooleannevisi.- Metin kıymetleri için
Stringnevisi.Şimdi değişenleri iyice tedkik ettiğimize göre, heyecan verici şekillerde işbu değişenleri bir araya getirmenin vakti geldi. Bab 2 için beklemede kalın ki ol babda Kotlin’de amelleri öğreneceğiz!
İşbu makaleyi tedkik ettikleri için Matt McKenna‘ya, Jacob Rakidzich‘e, ve Doug Smith‘e teşekkür ederiz.