为什么“+”运算符即使在 Scala 中的操作数之间没有 space 也能工作

Why does "+" operator work even without space between the operands in Scala

我正在学习 Scala 并且开始知道下面的代码有效,因为“+”是 Int class 中的一个方法(它接受一个参数和 returns 另一个 Int 实例).

例如:1 + 2等同于1.+(2)

我的问题是这个表达式是如何工作的?
1+2 //(+前后无space)

Language lexer 可以在这里拆分标识符和文字:

  • 1 - int 文字
  • + - 标识符
  • 2 - int 文字

只要词法分析器能够正确地拆分东西(这里总是可以),解析器就可以明确地解析结果。

只要你不是将关键字与标识符合并,因为它们之间没有 space,白色字符无关紧要。