我知道前缀和中缀是等价的。那么,为什么下面给出了不同类型的答案?
3.*(5) //> res50: Double = 15.0
3*5 //> res51: Int(15) = 15
我猜这里发生的事情与中缀和前缀无关。
它几乎可以肯定地将3.*(5)
标记为3.
, *
, (
, 5
, )
。3.
相当于3.0
——一个浮点数。因此,它被解析为中缀表达式:3.0
, *
, 5
(在5
周围有冗余的父节点)。
由于3.0
是浮点数,所以结果也是浮点数