为什么Kotlin不允许使用标识符中的斜杠

时间:2018-03-19 08:52:23

标签: scala unicode kotlin

反引号中的标识符允许使用Unicode

val `id` = "1"

但不允许斜线

val `application/json` = "application/json"

在Scala,我们可以有这样的名字。

2 个答案:

答案 0 :(得分:10)

这是JVM限制。从规范部分4.2.2

  

方法,字段,局部变量和形式参数的名称存储为非限定名称。非限定名称必须至少包含一个Unicode代码点,并且不得包含任何ASCII字符。 ; [/(即句号或分号或左方括号或正斜杠)。

在Scala中,名字被破坏以避免这种限制,在Kotlin中他们不是。

答案 1 :(得分:8)

Kotlin的标识符在Kotlin代码生成的JVM类和方法的名称中按原样使用,没有任何修改。斜杠在JVM名称中具有特殊含义(它将包和类名分开)。因此,Kotlin不允许在标识符中使用它。