Scala基礎應用(9) 隱式轉換

2021-07-29 09:29:34 字數 882 閱讀 3585

首先要明確隱式轉換只針對型別,與名稱無關,我把隱式型別分為以下三類

注意:隱式轉換只發生在執行時當前上下文沒有對應的呼叫。

同時,隱式轉換有如下限制:

下面為大家一一講解

也可稱為隱式值,即為隱式引數賦值

implicit val myname = "mark zhou"

def whoami(implicit name: string) = "my name is " + name

whoami

或者叫隱式型別,它可以將一種型別轉換成另外一種型別

class

person

(name: string, age: int)

import scala.language.implicitconversions

import scala.language.postfixops

implicit def mydetail(name: string) = new person(name, 18)

"mark zhou".detail

這裡我們思考一下,"mark zhou".length會出現什麼情況?檢視開始部分的「注意」項。

scala 2.10後才開始提供隱式類,同時隱式類有一些限制:

object

implicitclassdemo

}import implicitclassdemo._

"mark zhou".detail

scala基礎之隱式轉換

一 隱式轉換 隱式轉換函式,也被稱作隱式檢視,它是可以把一種型別轉換成另外一種型別,進而可以使用另外一種型別的屬性和方法,從而滿足表示式的要求 語法格式 implicit def 函式名 引數名 引數型別 返回型別 作用 如果隱式作用域裡存在這個定義,它會隱式地把原始型別的值轉化為增強的型別的值 在...

Scala 基礎7 隱式轉換

scala編譯器在編譯的時候如果發現型別不匹配,那麼就會使用隱式轉換來嘗試將當前型別轉換為預期的型別 在變數 方法或者類的前邊用implicit修飾,就表示這是乙個隱式轉換規則。需要注意的是,隱式轉換是按照規則轉換的,也就是說和名字無關。編譯器在同乙個地方只會新增一次隱式操作,不會在新增乙個隱式操作...

scala 隱式轉換

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