Scala在哪里尋找植入?阿隱式對(duì)于Scala的新手來說,問題似乎是:編譯器在哪里尋找隱式?我的意思是含蓄的,因?yàn)檫@個(gè)問題似乎從來沒有完全形成,好像沒有語言。-)例如,integral從下面來?scala> import scala.math._import scala.math._
scala> def foo[T](t: T)(implicit integral: Integral[T]) {println(integral)}foo: [T](t: T)(implicit integral:
scala.math.Integral[T])Unitscala> foo(0)scala.math.Numeric$IntIsIntegral$@3dbea611
scala> foo(0L)scala.math.Numeric$LongIsIntegral$@48c610af對(duì)于那些決定學(xué)習(xí)第一個(gè)問題的答案的人來說,另一個(gè)問題是編譯器如何選擇在某些明顯含糊不清的情況下使用哪一個(gè)隱式(但無論如何都是編譯)?例如,scala.Predef定義兩個(gè)轉(zhuǎn)換String*一至WrappedString另一個(gè)StringOps..然而,這兩個(gè)類共享許多方法,那么為什么Scala在調(diào)用時(shí)不抱怨模糊性map?注:這個(gè)問題是由另一個(gè)問題,希望能更全面地說明這個(gè)問題。該示例是從那里復(fù)制的,因?yàn)榇鸢钢幸昧嗽撌纠?
2 回答

守著一只汪
TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
1)通過本地聲明、導(dǎo)入、外部作用域、繼承、不帶前綴可訪問的包對(duì)象,引出當(dāng)前調(diào)用范圍可見的內(nèi)容。 2) 隱范圍
,它包含所有類型的伴隨對(duì)象和包對(duì)象,這些對(duì)象與我們搜索的隱式類型(即類型的包對(duì)象、類型本身的伴生對(duì)象、類型構(gòu)造函數(shù)(如果有的話)、參數(shù)(如果有的話)以及它的超類型和超特征之間有某種關(guān)系)。
- 2 回答
- 0 關(guān)注
- 588 瀏覽
添加回答
舉報(bào)
0/150
提交
取消