[解決済み] Scalaのシンボルリテラルの使用例にはどのようなものがありますか?
2023-02-05 10:16:31
質問
シンボルリテラルの使い方は、Scalaの本を読んでもすぐにはわかりません。どなたか、実際の使い方を教えていただけませんか?
シンボル・リテラルによってカバーされる特定のJavaイディオムがありますか? どのような言語が同様の構造を持つのでしょうか? 私はPythonの背景から来て、その言語で類似したものがあるかどうかわからない。
HelloWorld vs "HelloWorld"」を使用する動機は何でしょうか?
ありがとうございます。
どのように解決するのですか?
Java用語では、シンボルはインターン文字列です。これは、例えば、参照等価比較(
eq
はScalaでは
==
はJavaの場合)は通常の等値比較(
==
は,Scalaでは
equals
はJavaの場合)。
'abcd eq 'abcd
は真を返しますが
"abcd" eq "abcd"
はJVMの気まぐれによって、真を返さないかもしれません(まあ、リテラルに対してはそうすべきですが、一般的に動的に作成される文字列に対してはそうではありません)。
シンボルを使用する他の言語としては、Lisp (これは
'abcd
を使う)、Ruby (
:abcd
)、Erlang や Prolog (
abcd
シンボルではなくアトムと呼ばれる)。
私がシンボルを使うのは、文字列の構造を気にせず、純粋に何かの名前として使用する場合です。例えば、CDを表すデータベースのテーブルに、"price"という名前の列があったとして、"price"の2文字目が "r" であっても、列名を連結しても気にしない。だからScalaのデータベースライブラリーはテーブルと列名にシンボルを合理的に使うことができるのだ。
関連
-
[解決済み] PowerShellで"@"マークは何をするのですか?
-
[解決済み] なぜ"||"は "or "の記号なのですか?[クローズド]
-
[解決済み] 文の前の感嘆符(!)は何を意味するのですか?重複
-
[解決済み] IFステートメントを使用しているときに、シェルコマンドを複数行に分割するにはどうすればよいですか?
-
[解決済み】PowerShellで"&&"や"-and "を動作させることはできますか?
-
[解決済み】Scalaのコンテキストとビューバウンドとは何ですか?
-
[解決済み] Scalaのタイプラムダとその利点とは?
-
[解決済み] Kotlin 2次コンストラクタ
-
[解決済み] 依存するメソッドタイプの説得力のある使用例とは?
-
[解決済み] scala.concurrent.Promiseのユースケースは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] twigで文字列を連結する方法
-
[解決済み] はOCamlの構文糖でbegin.endですか?
-
[解決済み] Go golang、シンタックスエラー: unexpected ++, expecting :
-
[解決済み] にはどんな意味があるんだろう?
-
[解決済み] 演算子:=とは何ですか?
-
[解決済み] なぜ"||"は "or "の記号なのですか?[クローズド]
-
[解決済み] IFステートメントを使用しているときに、シェルコマンドを複数行に分割するにはどうすればよいですか?
-
[解決済み] Kotlinの変数名前アスタリスク演算子またはSpread演算子
-
[解決済み] 括弧、ドット、中括弧、=(関数)などを省略できる場合の正確なルールを教えてください。
-
[解決済み] オブジェクト初期化構文