2013-09-30 33 views
0

在課程上Scala的在Coursera(講座1.4,約3分鐘),馬丁·奧德斯基說,表達true && e總是返回e(e是任何對象)。而表達式false || e也返回e。他解釋說,有時最後一個表達式並不總是被評估。「真&& E」在Scala中返回「E」?

但是當我運行這些表達式時,我得到error: type mismatch。 對於true && 5我得到found: Int(5); required: Boolean

斯卡拉最近有進化或我做錯了什麼?

回答

6

e代表布爾表達式

Predicate: a boolean expression to be evaluated e.g. (x >= 4), (x != 0), etc 

看到https://sites.google.com/a/stonybrook.edu/functional-programming-scala/lecture-1-4


Scala Reference book款6.16 條件表達式,給出:

if (e1) e2 else e3 

條件E1有望符合布爾類型。隨後的部分 e2和其他部分e3都預計符合預期的 類型的條件表達式。條件式 表達式的類型是e2 和e3類型的弱最小上限(第3.5.3節)。

+0

那麼,Odersky說''e'可以是任何對象 – Graduate

+1

@研究生:請給我。 – senia

+0

講座1.4,大約3分鐘 – Graduate

相關問題