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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow