サーチ…


備考

同じ名前(同じ文字列)を持つ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