反引号中的标识符允许使用Unicode
val `id` = "1"
但不允许斜线
val `application/json` = "application/json"
在Scala,我们可以有这样的名字。
答案 0 :(得分:10)
这是JVM限制。从规范部分4.2.2:
方法,字段,局部变量和形式参数的名称存储为非限定名称。非限定名称必须至少包含一个Unicode代码点,并且不得包含任何ASCII字符。 ; [/(即句号或分号或左方括号或正斜杠)。
在Scala中,名字被破坏以避免这种限制,在Kotlin中他们不是。
答案 1 :(得分:8)
Kotlin的标识符在Kotlin代码生成的JVM类和方法的名称中按原样使用,没有任何修改。斜杠在JVM名称中具有特殊含义(它将包和类名分开)。因此,Kotlin不允许在标识符中使用它。