内建控制结构之if表达式
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
Scala的if語(yǔ)句與其它語(yǔ)言相比沒(méi)有什么不同。它可以檢測(cè)條件并根據(jù)其是否為真,執(zhí)行兩個(gè)分支中的一個(gè)。下面是常見(jiàn)的以指令式風(fēng)格編寫(xiě)的例子:
package?scalaTest object?Test4?{def?main(args:Array[String])?{var?filename?=?"default.txt"if(!args.isEmpty)?filename?=?args(0)println(filename)} }這段代碼聲明了變量filename,并初始化為默認(rèn)值。然后使用if表達(dá)式檢查程序是否帶有參數(shù)。如果是,就把變量改成參數(shù)列表中定義的值,如果沒(méi)有參數(shù),就保持變量的默認(rèn)值。這段代碼還有優(yōu)化的余地,如下例:
package?scalaTest object?Test4?{def?main(args:Array[String])?{val?filename?=?if(!args.isEmpty)?args(0)?else?"default.txt"println(filename)} }這一次,if有了兩個(gè)分支。如果args不為空,那么選擇初始化元素args(0),否則,選擇默認(rèn)值。這段代碼的實(shí)際優(yōu)點(diǎn)在于使用val而不是var。使用val體現(xiàn)了函數(shù)式的風(fēng)格,并且具有與java的final變量類似的效果。
使用val而不是var的第二點(diǎn)好處是它能更好地支持等效推論。在表達(dá)式?jīng)]有副作用的前提下,引入的變量等效于計(jì)算它的表達(dá)式。因此,無(wú)論何時(shí)都可以用表達(dá)式替代變量名。如下:
注:盡可能尋找使用val的機(jī)會(huì),它們能讓你的代碼既容易閱讀又容易重構(gòu)。
轉(zhuǎn)載于:https://my.oschina.net/fhd/blog/275393
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的内建控制结构之if表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AITO 问界 M7 智驾版汽车申报信息
- 下一篇: 结构化查询语言(Structured Q