您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何定義與聲明Scala函數,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
語法: 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 ?*? 函數聲明具有這樣的形式:def f psig: T,f是函數的名稱,psig是參數簽名,T是返回類型。函數定義def f psig: T = e還包括了函數體e,例如一個表達式定義了函數的結果。參數簽名由一個可選的類型參數子句[tps],后跟零個或多個值參數子句(ps1)…(psn)構成。這樣的聲明或定義引入了一個值,該值具有一個(可能是多態的)方法類型,其參數類型與返回類型已給出。 已給出的函數體的類型被期望與函數聲明的返回類型一致。如果函數定義不是遞歸的,那么返回類型則可省略,因為其可由函數體打包的類型推斷出來。 類型參數子句tps由一個或多個類型聲明構成,在其中引入了可能具有邊界的類型參數。類型參數的域包括整個簽名,也包括任何類型參數邊界以及函數體(如果有的話)。 值參數子句ps由零個或多個規范類型綁定(如x: T)構成,這些類型綁定綁定了值參數以及將它們與它們的類型聯系起來。一個規范值參數命名x的范圍是函數體(如果有的話)。所有的類型參數名及值參數名必須兩兩不同。 |
上述就是小編為大家分享的如何定義與聲明Scala函數了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。