Scala Language
Symbol Literals
Suche…
Bemerkungen
Scala verfügt über ein Konzept von Symbolen - Zeichenfolgen, die intern sind , das heißt: Zwei Symbole mit demselben Namen (dieselbe Zeichenfolge) beziehen sich im Gegensatz zu Zeichenfolgen während der Ausführung auf dasselbe Objekt.
Symbole sind ein Merkmal vieler Sprachen: Lisp, Ruby und Erlang und mehr. In Scala sind sie jedoch von relativ geringem Nutzen. Gute Eigenschaft, trotzdem zu haben.
Benutzen:
Wörtliche Anfang mit einem einfachen Anführungszeichen '
, gefolgt von einer oder mehreren Ziffern, Buchstaben oder Unter Partituren _
ist ein Symbol wörtlich zu nehmen . Das erste Zeichen ist eine Ausnahme, da es sich nicht um eine Ziffer handeln kann.
Gute definitionen:
'ATM
'IPv4
'IPv6
'map_to_operations
'data_format_2006
// Using the `Symbol.apply` method
Symbol("hakuna matata")
Symbol("To be or not to be that is a question")
Schlechte Definitionen:
'8'th_division
'94_pattern
'bad-format
Zeichenfolgen in case-Klauseln ersetzen
Nehmen wir an, wir haben mehrere Datenquellen, die Datenbank, Datei, Eingabeaufforderung und Argumentliste enthalten . Abhängig von der gewählten Quelle ändern wir unseren Ansatz:
def loadData(dataSource: Symbol): Try[String] = dataSource match {
case 'database => loadDatabase() // Loading data from database
case 'file => loadFile() // Loading data from file
case 'prompt => askUser() // Asking user for data
case 'argumentList => argumentListExtract() // Accessing argument list for data
case _ => Failure(new Exception("Unsupported data source"))
}
Wir hätten String
anstelle von Symbol
. Dies ist jedoch nicht der Fall, da keine der Funktionen von Strings in diesem Zusammenhang nützlich ist.
Dies macht den Code einfacher und weniger fehleranfällig.