溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何定義與聲明Scala函數(shù)

發(fā)布時間:2021-07-28 13:54:51 來源:億速云 閱讀:140 作者:Leah 欄目:云計算

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)如何定義與聲明Scala函數(shù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

語法:
Dcl ::= ?def? FunDcl
FunDcl ::= FunSig : Type
Def ::= ?def? FunDef
FunDef ::= FunSig [?:? Type] ?=? Expr
FunSig ::= id [FunTypeParamClause] ParamClauses
FunTypeParamClause ::= ?[? TypeParam {?,? TypeParam} ?]?
ParamClauses ::= {ParamClauses} [[nl] ?(? ?implicit? Params ?)?]
ParamClause ::= [nl] ?(? [Params] ?)?}
Params ::= Param {?,? Param}
Param ::= {Annotation} id [?:? ParamType]
ParamType ::= Type
| ?=>? Type
| Type ?*?
       函數(shù)聲明具有這樣的形式:def f psig: T,f是函數(shù)的名稱,psig是參數(shù)簽名,T是返回類型。函數(shù)定義def f psig: T = e還包括了函數(shù)體e,例如一個表達式定義了函數(shù)的結(jié)果。參數(shù)簽名由一個可選的類型參數(shù)子句[tps],后跟零個或多個值參數(shù)子句(ps1)…(psn)構(gòu)成。這樣的聲明或定義引入了一個值,該值具有一個(可能是多態(tài)的)方法類型,其參數(shù)類型與返回類型已給出。
       已給出的函數(shù)體的類型被期望與函數(shù)聲明的返回類型一致。如果函數(shù)定義不是遞歸的,那么返回類型則可省略,因為其可由函數(shù)體打包的類型推斷出來。
       類型參數(shù)子句tps由一個或多個類型聲明構(gòu)成,在其中引入了可能具有邊界的類型參數(shù)。類型參數(shù)的域包括整個簽名,也包括任何類型參數(shù)邊界以及函數(shù)體(如果有的話)。
       值參數(shù)子句ps由零個或多個規(guī)范類型綁定(如x: T)構(gòu)成,這些類型綁定綁定了值參數(shù)以及將它們與它們的類型聯(lián)系起來。一個規(guī)范值參數(shù)命名x的范圍是函數(shù)體(如果有的話)。所有的類型參數(shù)名及值參數(shù)名必須兩兩不同。

上述就是小編為大家分享的如何定義與聲明Scala函數(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI