Scala前缀,中缀及后缀运算详解

本文详细介绍了Scala中的前缀、中缀和后缀运算符,包括它们的语法、优先级和相关性。前缀运算符如'-'、'!',后缀运算符如'id',中缀运算符根据第一个字符确定优先级。赋值运算符如'='具有最低优先级,其特殊性在于可能触发表达式的再解析,确保左侧只计算一次。
摘要由CSDN通过智能技术生成
语法:
PostfixExpr ::= InfixExpr [id [nl]]
InfixExpr ::= PrefixExpr
| InfixExpr id [nl] Inf2424ixExpr
PrefixExpr ::= [„-‟ | „+‟ | „!‟ | „~‟] SimpleExpr
表达式由算符和操作数构成。
6.12.1. 前缀运算
前缀运算op e由前缀算符op(必须是„+‟, „-‟, „!‟或„~‟之一)。表达式op e等价于后缀方法应用e.unary_op。
前缀算符不同于普通的函数应用,他们的操作数表达式不一定是原子的。例如,输入序列-sin(x)读取为-(sin(x)),函数应用negate sin(x)将被解析为将中缀算符sin应用于操作数negate和(x)。
6.12.2. 后缀操作
后缀算符可以是任意标识符。后缀操作e op被解释为e.op。
6.12.3. 中缀操作
中缀算符可以是任意标识符。中缀算符的优先级和相关性定义如下:
中缀算符的优先级由算符的第一个字符确定。字符按照优先级升序在下面列出,同一行中的字符具有同样的优先级。
(所有字母)
|
^
&
< >
= !
:
+ -
* / %
(所有其他特殊字符)
也就是说,由字母开头的算符具有最低的优先级,然后是由„|‟开头的算符,下同。
这个规则中有一个例外,就是赋值算符(§6.12.4)。赋值算符的优先级与简单赋值(=)相同。也就是比任何其他算符的优先级要低。
算符的相关性由算符的最后一个字符确定。由„:‟结尾的算符是右相关的。其他所有算符是左
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值