scala隱式轉換implicit

2021-07-25 11:45:35 字數 926 閱讀 7972

1.隱式轉換函式

隱式轉換背後實現的深層機制便是隱式轉換函式(implicit conversion method)。隱式轉換函式的作用是在無須顯式呼叫的情況下,自動地將乙個型別轉換成另乙個型別。

objecttest 

}

注意:隱式轉換函式與函式的標籤有關,即與輸入輸出型別有關,與函式名稱無關。

隱式函式可以快速地擴充套件類的功能。

objecttest 

}classsuperman

classman

2.隱式類

定義方式和普通的類類似,只需要在class前面加上implicit

objecttest 

defmain(args: array[string]): unit =

}classman

注意:implicit 類只能定義在trait/類/object中

3.隱式引數和隱式值

objecttest 

implicit valx:int = 5

//implicit

值println(sum)

}}

當使用sum函式,並且不指定值時,編譯器會自動查詢該隱式值作為函式的引數。

注意:

1.implicit在函式引數中只能使用一次,即sum(implicit x:int,implicit y:int)是錯誤的

2.implicit關鍵字的作用域是整個函式引數,即上例中的x和y都是implicit的

scala學習筆記2 隱式轉換implicit

一 scala隱式轉換 乙個類例項a,有a方法而沒有b方法,需要將a轉換為提供b方法的類,稱為隱式轉換 class richfile val file file object context object helloimplicit 隱式轉換在spark rdd的應用 rddtopairrddfun...

scala 隱式轉換

defdisplay input string unit println input implicit deftypeconvertor input int string input.tostring implicit deftypeconvertor input boolean string if...

scala 隱式轉換

隱式轉換就是 當scala編譯器進行型別匹配時,如果找不到合適的候選,那麼隱式轉化提供了另外一種途徑來告訴編譯器如何將當前的型別轉換成預期型別。使用方式 將方法或變數標記為implicit 將方法的引數列表標記為implicit 將類標記為implicit 宣告乙個帶有implicit修飾過引數的方...