您好,登錄后才能下訂單哦!
這篇文章主要介紹“Scala隱式轉換的簡單介紹”,在日常操作中,相信很多人在Scala隱式轉換的簡單介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Scala隱式轉換的簡單介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Scala的隱式轉換,其實最核心的就是定義隱式轉換函數,即implicit
conversion function。定義的隱式轉換函數,只要在編寫的程序內引入,就會被Scala自動使用。Scala會根據隱式轉換函數的簽名,在程序中使用到隱式轉換函數接收的參數類型定義的對象時,會自動將其傳入隱式轉換函數,轉換為另外一種類型的對象并返回。這就是“隱式轉換”。
通常建議將隱式轉換函數的名稱命名為“one2one”的形式。
隱式轉換函數與普通函數唯一的語法區別就是,要以implicit
開頭,而且最好要定義函數返回類型。
implicit def double2Int(d:Double):Int={ d.toInt } val v:Int = 3.0 println(v)
##注意細節
隱式轉換函數的函數名可以是任意的,隱式轉換與函數名稱無關,只與函數簽名(函數參數類型和返回值類型)有關。
隱式函數可以有多個(即:隱式函數列表),但是需要保證在當前環境下,只有一個隱式函數能被識別
class developer { def select(): Unit = { println("select data") }}class admin { def delete(): Unit = { println("delete data") }}object TransformObjectApp { def main(args: Array[String]): Unit = { implicit def deleteData(dev: developer): admin = { new admin } val d = new developer d.select() d.delete() }}
##隱式值
隱式值也叫隱式變量,將某個形參變量標記為implicit,所以編譯器會在方法省略隱式參數的情況下去搜索作用域內的隱式值作為缺省參數
到此,關于“Scala隱式轉換的簡單介紹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。