为什么Scala中操作数之间没有空格的情况下,"+"操作数也能使用?

问题描述 投票:0回答:1

我正在学习Scala,我知道下面的代码可以工作,因为 "+"是一个方法在 Int 类(它接受一个参数并返回另一个 Int 实例)。

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

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

scala operator-overloading infix-notation
1个回答
2
投票

语言词典 能够在这里分割标识符和字面。

  • 1 - int literal
  • + - 识别码
  • 2 - 字面意思

只要lexer能够正确地拆分东西(在这里它总是能够),解析器就能毫不含糊地解析结果。

只要你不是因为关键词和标识符之间没有空格而将它们合并,白色字符就不重要。

© www.soinside.com 2019 - 2024. All rights reserved.