scala 省略引數列表的函式賦值問題

2021-10-06 09:15:33 字數 894 閱讀 4159

def fun(): string = 

def fun2: string =

// 函式如果不省略 () 那麼呼叫函式可以使用 函式名() 或 函式名 eg:fun() 或 fun

// 函式如果省略 () 那麼呼叫函式時只能用 函式名 eg:fun2

// ① val f = fun _ // f 型別是 () => string

// ② val f = fun // f 型別是 string

// ③ val f = fun() // f 型別是 string

// ④ val f : () => string = fun // ✅ 此處 f 是 () => string 型別。

// 總結: 對於不省略引數列表 fun(): string = {} 來說

// 1. 如果用推斷型別 val 或 var , 只能用下劃線賦值函式。

// 2. 如果明確變數型別是函式型別, 那麼可以使用 fun _ 和 fun 兩種方式賦值函式。

// ① val f2 = fun2 _ // f2 型別是 () => string , 此種使用下劃線的方式是省略引數列表()的函式,賦值給乙個變數的唯一方法。

// ② val f2 = fun2 // f2 型別是 string

// ③ val f2 = fun2() // run error, 省略引數列表的函式不能用()呼叫

// ④ val f2 : () => string = fun2 // ❎ 此處 fun2 是呼叫函式, 返回乙個字串。

// ⑤ val f2 : () => string = fun2 _ // 此種使用下劃線的方式是省略引數列表()的函式,賦值給乙個變數的唯一方法。

函式的引數列表

今日內容 1.函式的引數 2.函式物件 函式名 重點!3.函式 的巢狀呼叫 1.形參與實參 函式介紹 1.1 函式為什麼要有引數 因為內部的函式體需要外部的資料 1.2 怎麼定義函式的引數,在定義函式階段,函式名後面 中來定義函式的引數 1.3 怎麼使用函式的引數,在函式體中用定義的引數名直接使用 ...

變長引數列表函式

可變引數列表 標頭檔案提供了遍歷未知數目和型別的函式引數表的功能。該標頭檔案的實現因不同的機器而不同,但提供的介面是一致的。假定函式 f 帶有可變數目的實際引數,lastarg 是它的最後乙個命名的形式引數 引數列表必須至少包括乙個命名引數 那麼,在函式 f 內宣告乙個型別為 va list 的變數...

變長引數列表函式

可變引數列表 標頭檔案提供了遍歷未知數目和型別的函式引數表的功能。該標頭檔案的實現因不同的機器而不同,但提供的介面是一致的。假定函式 f 帶有可變數目的實際引數,lastarg 是它的最後乙個命名的形式引數 引數列表必須至少包括乙個命名引數 那麼,在函式 f 內宣告乙個型別為 va list 的變數...