Scala程式語言中的隱式轉換

2021-10-09 18:53:36 字數 806 閱讀 8166

一般在開發過程中,也很少用到隱式轉換,但在面試中又會經常問到,下面描述下什麼是隱式轉換?

1. 隱式轉換的定義

簡單地說,隱式轉換就是:當scala編譯器進行型別匹配時,如果找不到合適的候選,那麼隱式轉化提供了另外一種途徑來告訴編譯器如何將當前的型別轉換成預期型別*

2. 隱式轉換的方法

隱式轉換完成的方式一般有2種,舊的定義方法指是的「implict def」形式,這種形勢下,隱式轉換只是一種普通的方法,只不過這種方法要用implicit修飾符修飾,下面以**舉例:

object implicittranstest 

}

3.隱式轉換的常見使用場景

3.1 arrayops對array的型別增強

3.2 spark中pairrddfunctions對rdd的型別增強

如果你看一下spark中的rdd以及它的子類是沒有groupbykey, reducebykey以及join這一類基於key-value元組的操作的,但是在你使用rdd時,這些操作是實實在在存在的,spark正是通過隱式轉換將乙個rdd轉換成了pairrddfunctions, 這個動作是這樣發生的:

object rddfunctions
首先在rdd的伴隨物件中宣告了從rdd到pairrddfunctions的隱式轉換:然後在sparkcontext中import了rdd的所有東西,使隱式轉換生效,這樣rdd就具備了鍵值對型的rdd的功能了。

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修飾過引數的方...

scala隱式轉換

目錄 隱式轉換的概念 隱式轉換的使用 隱式轉換做引數型別轉換 隱式轉換增強現有型別 隱式引數 利用隱式引數進行隱式轉換 再議context bounds 隱式轉換函式 implicit conversion function 是以implicit關鍵字宣告的帶有單個引數的函式,這樣的函式將被自動應用...