(Bu, Daniel'in cevabına ek bir yorum, ancak sözdizimi vurgulama ve biçimlendirme yararına bir cevap olarak gönderiyorum.)
Daniel'in, dilin anlambiliminde önemli olan ilk büyük harf kullanma tarzı hakkındaki düşüncesi, Scala'yı öğrendiğimde ona verdiğim değerden daha incelikli ve önemlidir.
Aşağıdaki kodu göz önünde bulundurun:
object Case {
val lowerConst = "lower"
val UpperConst = "UPPER"
def main(args: Array[String]) {
for (i <- Seq(lowerConst, UpperConst, "should mismatch.").map(Option.apply)) {
print("Input '%s' results in: ".format(i))
i match {
case Some(UpperConst) => println("UPPER!!!")
case Some(lowerConst) => println("lower!")
case _ => println("mismatch!")
}
}
}
}
Naifçe bunun maçtaki tüm davalara ulaşmasını beklerdim. Bunun yerine şunu yazdırır:
Input 'Some(lower)' results in: lower!
Input 'Some(UPPER)' results in: UPPER!!!
Input 'Some(should mismatch.)' results in: lower!
Olan şey case Some(lowerConst)
, vali gölgeler lowerConst
ve aynı isimde yerel bir değişken yaratır ve bu değişken Some
bir dizge içeren bir değer değerlendirildiğinde her zaman doldurulur .
Kuşkusuz bu sorunu çözmenin yolları vardır, ancak en basit olanı, sabit adlandırma için stil kılavuzunu takip etmektir.
Adlandırma kuralını takip edemiyorsanız, @reggoodwin'in aşağıdaki yorumlarda belirttiği gibi, değişken adını bu şekilde işaretlere koyabilirsiniz.
case Some(`lowerConst`) => println("lower!")