scala-02函數(shù)定義、流程控制、異常處理
瑪多網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),瑪多網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為瑪多上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的瑪多做網(wǎng)站的公司定做!一、Scala函數(shù)定義:
(scala函數(shù)定義時(shí)候默認(rèn)會(huì)導(dǎo)入包)
(1)val:類似java中final類型的變量(常量)
1,基本格式:val 變量名:變量類型 = 值
2,其中有時(shí)變量類型可以省略,可以自動(dòng)識(shí)別
3,變量不能賦值,修改
var :等同于java中的非final型變量
(2)有參數(shù)的函數(shù)定義
def 函數(shù)名(參數(shù)列表,...):返回結(jié)果類型={}
Object MyScala{
def Mysca(x:int ,y:int):int={
Var a=x
Var b=y
While(a!=0){
Var temp=a
b=b%a
b=temp
}
b
}
Println(Mysca(120,230))
}
① 有時(shí)函數(shù)必須制定返回結(jié)果類型,如函數(shù)時(shí)遞歸,就必須明確制定返回結(jié)果類型;
② 如果函數(shù)僅 一個(gè)語(yǔ)句,連花括號(hào)都可以不寫。如是max函數(shù)就成了這樣,作用功能仍然沒(méi)有變化;
③ Scala語(yǔ)言在進(jìn)行函數(shù)調(diào)用時(shí)可不加();
④ Scala語(yǔ)言在編寫的時(shí)候亦可以不用加“;”
⑤ Scala中,i++或者++i都不能其作用,只能使用i=i+1
⑥ foreach與函數(shù)字面量
函數(shù)字面量格式:參數(shù)列表 => 函數(shù)體
(x: Int, y:Int) => x + y
⑦ for循環(huán)中是val類型,因此在for表達(dá)式中不能重新對(duì)其賦值, <-可以理解為其中的意思for(arg <- args)
注:Scala 三元符表達(dá)示例:
var file=if(!args.isEmpty)args(0) else scala.xml
二、異常處理
Scala中異常機(jī)制與Java和C++中一樣。但Scala中并沒(méi)有受檢異常,也就是不需要說(shuō)明函數(shù)方法可能會(huì)拋出什么異常。
使用throw來(lái)拋出一個(gè)異常。throw表達(dá)式的類型是Nothing。
如果不需要使用捕獲的異常對(duì)象,使用_來(lái)代替變量名(_是Scala中的通配符)同時(shí)也有try/finally語(yǔ)句,通常用來(lái)清理??梢越M合成try/catch/finally語(yǔ)句
拋出一個(gè)異常看起來(lái)類似于Java。創(chuàng)建一個(gè)異常對(duì)象,然后使用throw關(guān)鍵字把它拋出
throw new IllegalArgumentException
捕捉異常:ry/catch在一個(gè)單獨(dú)的塊捕捉任何異常,然后使用case塊進(jìn)行模式匹配。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。