Scala Language
シンボルリテラル
サーチ…
備考
同じ名前(同じ文字列)を持つ2つのシンボルが、文字列に反しで、実行時に同じオブジェクトを参照します:文字列、つまり抑留されている- Scalaは、シンボルの概念が付属しています。
シンボルはLisp、Ruby、Erlangなど、多くの言語の機能ですが、Scalaでは比較的小さな用途です。それにもかかわらず良い機能。
つかいます:
単一引用符を持つ任意のリテラル先頭に'
一つ以上の数字が続くが、文字、またはアンダースコア_
リテラルシンボルです。最初の文字は数字ではありえないので例外です。
良い定義:
'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")
悪い定義:
'8'th_division
'94_pattern
'bad-format
case節の文字列の置換
データベース、ファイル、プロンプト 、および引数リストを含む複数のデータソースがあるとします 。選択されたソースに応じて、私たちのアプローチを変更します:
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"))
}
私たちは、 Symbol
代わりにString
をよく使うことができました。この文脈では、文字列の機能のどれも役に立ちませんので、私たちはしませんでした。
これにより、コードが簡単になり、エラーが発生しにくくなります。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow