欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:后端 Scala隱式轉(zhuǎn)換

柚子快報邀請碼778899分享:后端 Scala隱式轉(zhuǎn)換

http://yzkb.51969.com/

????????Scala 的隱式轉(zhuǎn)換是一種自動類型轉(zhuǎn)換機制,它可以在編譯器自動插入一些代碼,將一個類型自動轉(zhuǎn)換成另一個類型。這種轉(zhuǎn)換可以發(fā)生在函數(shù)調(diào)用、賦值、類型轉(zhuǎn)換等多種場景中。

????????隱式轉(zhuǎn)換的機制可以讓 Scala 代碼更加簡潔、優(yōu)雅。例如,我們可以通過隱式轉(zhuǎn)換實現(xiàn)一些類型之間的轉(zhuǎn)換,而不需要手動編寫轉(zhuǎn)換代碼。

1 隱式函數(shù)

下面是一個簡單的例子,展示了如何使用隱式轉(zhuǎn)換將一個字符串轉(zhuǎn)換成整數(shù):

object TestImplicit {

def main(args: Array[String]): Unit = {

val i: Int = "123"

println(i)

}

implicit def StringtoInt(s: String): Int = {

Integer.parseInt(s)

}

}

將函數(shù)注釋掉之后,IDEA也會進行報錯,

2 隱式參數(shù)

????????普通方法或者函數(shù)中的參數(shù)可以通過 implicit 關(guān)鍵字聲明為隱式參數(shù),調(diào)用該方法時, 就可以傳入該參數(shù),編譯器會在相應(yīng)的作用域?qū)ふ曳蠗l件的隱式值。

同一個作用域中,相同類型的隱式值只能有一個編譯器按照隱式參數(shù)的類型去尋找對應(yīng)類型的隱式值,與隱式值的名稱無關(guān)。隱式參數(shù)優(yōu)先于默認(rèn)參數(shù)

implicit val str: String = "辰辰"

def hello()(implicit arg: String = "cc") = println(arg)

def main(args: Array[String]): Unit = {

hello // 辰辰

}

3 隱式類

????????在 Scala2.10 后提供了隱式類,可以使用 implicit 聲明類,隱式類的非常強大,同樣可以擴展類的功能,在集合中隱式類會發(fā)揮重要的作用。

其所帶的構(gòu)造參數(shù)有且只能有一個隱式類必須被定義在“類”或“伴生對象”或“包對象”里,即隱式類不能是頂級的。

object TestImplicit {

implicit class StringExtensions(s: String) {

def increment: String = s.map(x => (x + 1).toChar)

}

def main(args: Array[String]): Unit = {

val str = "chen chen"

println(str.increment) // difo!difo

}

}

? ? ? ? 此隱式類擴展了?String?類型的功能,添加了一個名為?increment?的方法,該方法將字符串中的每個字符的 ASCII 值加 1,并返回新的字符串

4 隱式機制解析

編譯器查找順序

首先會在當(dāng)前代碼作用域下查找隱式實體(隱式方法、隱式類、隱式對象)。( 一般是這種情況)如果第一條規(guī)則查找隱式實體失敗,會繼續(xù)在隱式參數(shù)的類型的作用域里查找。類型的作用域是指與該類型相關(guān)聯(lián)的全部伴生對象以及該類型所在包的包對象。

?需要注意的是,隱式轉(zhuǎn)換可能會導(dǎo)致一些意想不到的行為,因此在使用隱式轉(zhuǎn)換時,我們需要謹(jǐn)慎地考慮其可能帶來的影響。

柚子快報邀請碼778899分享:后端 Scala隱式轉(zhuǎn)換

http://yzkb.51969.com/

好文閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19103211.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄