Scala in java code:$ colon

eng*_*ran 4 syntax scala bytecode

我读了一些包含Scala源代码的java源代码.

我发现 Nil.$colon$colon(Object arg)

关键词$colon是什么意思?这条线意味着什么?

Dav*_*rre 14

$ colon是符号的错误:.因为:(和其他字母)是java中用于方法名称但在scala中允许的非法字母,需要一种策略将其编码为合法名称.因此,$冒号

在这里,您的代码转换为arg :: Nil,它将arg添加到空列表中,构建一个带有arg作为单个元素的List.

  • 它基本上意味着具有用于运行时的不同标识符,而不是源代码中存在的标识符.见http://en.wikipedia.org/wiki/Name_mangling. (3认同)