为什么“+”运算符即使在 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,白色字符无关紧要。
我正在学习 Scala 并且开始知道下面的代码有效,因为“+”是 Int
class 中的一个方法(它接受一个参数和 returns 另一个 Int 实例).
例如:1 + 2
等同于1.+(2)
我的问题是这个表达式是如何工作的?
1+2
//(+前后无space)
Language lexer 可以在这里拆分标识符和文字:
1
- int 文字+
- 标识符2
- int 文字
只要词法分析器能够正确地拆分东西(这里总是可以),解析器就可以明确地解析结果。
只要你不是将关键字与标识符合并,因为它们之间没有 space,白色字符无关紧要。