5
想象我有下面的類定義:通過名稱類型參數
class Foo[T]
,我想做到以下幾點
def bar(x:Foo[ =>Int ]):Int = ???
但是編譯器失敗,「沒有這裏不允許按姓名參數類型「
如何使用名稱類型作爲泛型方法的類型參數?
想象我有下面的類定義:通過名稱類型參數
class Foo[T]
,我想做到以下幾點
def bar(x:Foo[ =>Int ]):Int = ???
但是編譯器失敗,「沒有這裏不允許按姓名參數類型「
如何使用名稱類型作爲泛型方法的類型參數?
你將不得不提供你自己的懶包裝。是這樣的:
class Lazy[T](wrp: => T) {
lazy val value: T = wrp
}
然後:
def bar(x: Foo[Lazy[T]]): Int = ???
什麼約'類懶惰[T](VAL值:=> T)'?無需重複持有人的價值。 – pedrofurla
@pedrofurla。不允許(val參數不能按名稱調用)。如果是,在什麼時候價值應該被初始化? –
奇怪。不知道。我想他們會在第一次通話時被初始化。 – pedrofurla