(Questo è un commento addendum alla risposta di Daniel, ma sto distacco come una risposta a beneficio di evidenziazione della sintassi e la formattazione.)
Il punto di Daniel circa lo stile dell'uso di una lettera maiuscola iniziale che è importante nella semantica del linguaggio è più sottile e importante di quello che inizialmente gli attribuivo il merito quando ho imparato Scala.
Si consideri il seguente codice:
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!")
}
}
}
}
Ingenuamente mi sarei aspettato che per raggiungere tutti i casi nella partita. Invece esso stampa:
Input 'Some(lower)' results in: lower!
Input 'Some(UPPER)' results in: UPPER!!!
Input 'Some(should mismatch.)' results in: lower!
Cosa sta succedendo è che le ombre case Some(lowerConst)
Val lowerConst
e crea una variabile locale con lo stesso nome che verrà popolata ogni volta che un Some
contenente una stringa viene valutata.
Ci sono certamente modi per aggirare il problema, ma il più semplice è seguire la guida di stile per la denominazione costante.
Se non è possibile seguire la convenzione di denominazione, poi come @reggoodwin sottolinea nei commenti qui sotto, è possibile inserire il nome della variabile in tick, in questo modo
case Some(`lowerConst`) => println("lower!")
fonte
2012-03-17 18:25:53
Quando è da utilizzare come un convenzionale, del tutto-predefinito C-/costante Java-stile, il primo. La seconda forma, e sottolinea i nomi in generale, non viene mai realmente utilizzata. Il terzo è generalmente utilizzato per valori immutabili generati dinamicamente. – Destin
Sto usando il secondo, ma principalmente per esperienza java precedente. Ignoralo, penso che il modo più ufficiale sia il primo (dal momento che è usato in scala lib stessa, per esempio guarda π che è definito come 'Pi'). –