java赋值语句_Scala守卫语句的集中用法
相比于JAVA,Scala的if增加了兩項(xiàng)強(qiáng)大的功能,一是可以直接作為賦值語句,另一種功能是作為守衛(wèi)語句,不僅遠(yuǎn)遠(yuǎn)超過JAVA,甚至也將PYTHON拋在身后。
1. if作為賦值語句
作為賦值語句,不僅僅只是替代了三元運(yùn)算符,而且還能支持邏輯語句塊,如下:
val (a, b) = (10, 20)// 更添加更多邏輯控制,且支持語句塊val value = if(a > b) 1 else if(a == b) { val c = a - 1 c * c} else 12. if作為for守衛(wèi)語句
if作為for守衛(wèi)語句能實(shí)現(xiàn)過濾的效果,顯著地降低循環(huán)次數(shù),并且更易讀,如下:
// 返回大于5的偶數(shù),類型為Vectorval items = for(i 1 to從上面可以看出,if作為for守衛(wèi)語句具有如下特點(diǎn):
1. 一個for循環(huán)可以支持多個if語句,以空格、回車字符分割
2. 多個if語句之間的關(guān)系是邏輯與(&&);
需要注意,if守衛(wèi)語句并不支持其他循環(huán)語句,如while。
3. if作為case守衛(wèi)語句
繼續(xù)上面的例子,在作為case守衛(wèi)語句中,能細(xì)化case語句的粒度,更易于控制邏輯流轉(zhuǎn),如下:
var vs = items match { // 判斷x的長度 case x if x.size < 1 => null // 判斷x的內(nèi)容 case x if x.contains(8) => 8}對于“case”語句,雖然沒有顯式的“break”語句,但是依舊是“滿足即阻斷”,只會執(zhí)行最先滿足的“case”,所以,設(shè)計(jì)“case”執(zhí)行邏輯時,最重要的就是執(zhí)行邏輯的優(yōu)先級。
結(jié)論
熟練使用if語句,能實(shí)現(xiàn)很優(yōu)雅的短碼效果,更能達(dá)到Python提倡的“用一條語句(集合)解決一個問題”。
總結(jié)
以上是生活随笔為你收集整理的java赋值语句_Scala守卫语句的集中用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: properties 配置回车_在Ubu
- 下一篇: python怎样实现封装_python封