Scala 10 隱式型別轉換

2021-10-16 09:27:06 字數 1229 閱讀 7448

package com.yxx/**

* 隱式值和隱式引數

* */

object test_implicit

//帶有乙個引數的柯里化函式

def say1(age:

int)

(implicit name:

string):

unit

=def main(args: array[

string])

:unit

=}

package com.yxx

/** 1、隱式轉換函式使用implicit修飾

* 2、當scala執行的時候 假設a型別呼叫了方法method,而a型別沒有方法method 但是b型別有這個方法

* 3、那麼此時 scala就會在作用域內找隱式型別轉換的函式將a型別轉換為b型別 若是有的話 a型別就可以呼叫b型別的method方法

* 4、注:隱式轉換函式只與引數和返回值型別有關 所以作用域之內不能有相同的引數型別和返回值型別的不同名稱的隱式轉換函式

* */

case

class fish(name:

string)}

case

class rabbit(name:

string

)object test_implicit2

def main(args: array[

string])

:unit

=}

package com.yxx

/** 1、使用implicit修飾的類就是隱式類

* 2、若乙個變數a沒有某些方法或者某些變數時,而這個變數呼叫某些方法和某些變數時,可以定義乙個隱式類,隱式類中定義了這些方法和變數,隱式類中傳入a即可

* 3、注意:隱式類必須定義在類、包物件、伴生物件中

* 隱式類的構造必須只有乙個引數,同乙個類,包隊形、伴生物件中不能出現同型別構造的隱式類

* */

case

class rabbit444(name:

string

)object test_implicit3 is saying...")}

}def main(args: array[

string])

:unit

=}

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關鍵字宣告的帶有單個引數的函式,這樣的函式將被自動應用...