Scala Değişkenler Hakkında

Değişebilen Değişkenler (Mutable Fields):
Tanımlandıktan sonra değeri değişebilen değişkenlerdir. var anahtar kelimesi ile tanımlanırlar.

var fiyat: Int = 45
var fiyat = 45
fiyat = 50

İki örnekte aynı şeydir. Değişken tanımlarken veri tipini belirtmek zorunlu değildir. Veri tipi belirtilmeden tanımlanan değişkenlerin tipi otomatik olarak atanır.

Değişmez Değişkenler (Immutable Fields)
Değişmez değişkenler, tanımlandıktan sonra değeri değişmeyen değişkenlerdir. val anahtar kelimesi ile tanımlanırlar.

val fiyat: Int = 45
val fiyat = 45 
fiyat = 50 // hata verir

Çoklu Değişken Tanımlama

val (fiyat: Int, renk: String) = Pair(45, "Kırmızı") 
val (fiyat, renk) = Pair(45, "Kırmızı")

( _ ) Operatörü
Scala’da var ile tanımlanan ve tanımlanırken tipi belirtilen değişkenlerin varsayılan değer almasını sağlar. Tek kullanım alanı bu değildir ama değişken tanımlarken bu amaçla kullanılır.

var yas: Int         = _  // 0 değeri atandı
var isim: String     = _  // null değeri atandı
var fiyat: Double    = _  // 0.0 değeri atandı
var satilik: Boolean = _  // false değeri atandı

Scala Class Hiyerarşisi
Class Hierarchy of Scala

Strings
Örnek String tanımlamalarına bakalım;

var isim: String = "Burak"
var paragraf: String = """Birden fazla satırlı
                        String tanımlamak için 3 
                        tırnak işareti kullanılır."""

String Önekleri
s Öneki: String değerin içinde değişken kullanmak için kullanılır. $ işareti ile beraber değişken ismini yazarak kullanılır. ${ } şeklinde kullanarak da parantez içinde işlem yapılabilir.

var isim: String  = "Burak"
var onek: String  = s"Benim adım: $isim"
var yas: Int      = 18
var onek2: String = s"Bir ay sonra ${yas + 1} yaşıma giricem."
//Bir ay sonra 19 yaşıma giricem.

f Öneki: C programlama dilindeki printf fonksiyonu gibi kullanım için kullanılır.

var fiyat: Int  = 20
var onek3: String = f"Kitabın fiyatı $fiyat%.2f TL"
// Kitabın fiyatı 20.00 TL

raw Öneki: String değerin içindek kaçış(escape) karakterlerinin kullanımını engeller. Yani değerin içinde ne varsa direk onu yazar.

var onek4: String = raw"Bugün hava çok güzel.\n Yarında böyle \t olursa iyi olur."
// Bugün hava çok güzel.\n Yarında böyle \t olursa iyi olur.

Yukardaki örnekte alt satır inmesi ve bir tab boşluk bırakması gerekirken direk kaçış karakterlerini ekrana bastı.

String Metodları

var str: String = "buralar yanar"
Metod Kullanım Sonuç
capitalize str.capitalize Buralar yanar
count str.count(_.equals(‘a’)) 4
diff str.diff(“bura”) lar yanar
distinct str.distinct bural yn
drop str.drop(3) alar yanar
dropRight str.dropRight(2) buralar yan
dropWhile str.dropWhile(_ != ‘l’) lar yanar
endsWith str.endsWith(“ar”) true
filter str.filter(_ != ‘a’) burlr ynr
getBytes str.getBytes Array(98, 117 … 114)
head str.head b
headOption str.headOption Some(b)
indexOf str.indexOf(“a”) 3
isEmpty str.isEmpty false
lastIndexOf str.lastIndexOf(“r”) 12
length str.length 13
map str.map(_.toUpper) BURALAR YANAR
mkString str.mkString(“-“) b-u-r-a-l-a-r- -y-a-n-a-r
nonEmpty str.nonEmpty true
partition str.partition(_> ‘a’) (burlrynr, aa aa)
replace str.replace(“a”, “e”) bureler yener
replaceAll str.replaceAll(“a”, “e”) bureler yener
replaceFirst str.replaceFirst(“a”, “e”) burelar yanar
reverse str.reverse ranay ralarub
size str.size 13
slice str.slice(2, 6) rala
sorted str.sorted aaaablnrrruy
sortWith str.sortWith(_ < _) yurrrnlbaaaa
split str.split(“ “) Array(buralar, yanar)
splitAt str.splitAt(3) (bur,alar yanar)
substring str.substring(0,3) bur
tail str.tail uralar yanar
take str.take(3) bur
takeRight str.takeRight(3) nar
takeWhile str.takeWhile(_ != ‘r’) bu
toLowerCase str.toLowerCase buralar yanar
toUpperCase str.toUpperCase BURALAR YANAR
zip(0 to 12) str.zip(0 to 10) Vector((b, 12), (u, 11), … (r, 0))
zipWithIndex str.zipWithIndex Vector((b, 0), (u, 1), … (r, 12))