私はちょうど奇妙なクラス名を持ついくつかのScalaのコードを見つけました!クールなクラスとメソッド名は ``:class `'にラップされていますこれはクールなクラス` {}ですか?</p> <pre><code>class `This is a cool class` {} </code></pre> <p>とメソッド名::私たちはクラスやメソッド名のための文を使用することができます</p> <pre><code>def `cool method` = {} </code></pre> <p>
これは、ユニットテストのための非常にクールで便利です:
class UserTest {
def `user can be saved to db` {
// testing
}
}
しかし、なぜ私たちはこれを行うことができますか?それを理解する方法?
+1はバッククォートがある理由について*理由*を与えるために+1します。 – Frank
OPのユースケースも考慮されている可能性があります。そうしないと、C#がどのようにそれを行うのかと同じように、単一のシンボルだけが引用符で囲まれた識別子を示す必要があります。 –
@jk。 - Scalaのレキシングが他の人と同じように動作する場合のみ。 JVM仕様では、メソッド名としてほとんどすべてを使用できます。 ScalaがJava互換のシンボルのエンコード(例えばスペースは$ u0020になります)と未処理のバージョンの両方をチェックするのに十分なほどスマートなのかどうかはわかりませんが、メソッド名に非標準文字を入れる言語を書いた人がいます。 –