2017-04-11 18 views
0

考慮上課。 如果我們要爲學校課堂添加一個瞳孔字段,可以將對象引用傳遞給學生對象。將含有類的值隱式傳遞到類字段中?

因此而不是做

class School() { 
    val pupil:Pupil = new Pupil(this) 
} 

我們能做到這一點

class School() { 
    val pupil:Pupil = new Pupil() 
} 

而且仍然能夠從瞳孔物體進入學校參考。我在想斯卡拉implicits可能會有所幫助?

+0

也許你已經縮小的例子,以至於它不再代表,但你確定這不是一個情況下顯的是更好隱含? –

回答

1

例如,

object ImplicitConstructorParameter extends App { 
    class Pupil(implicit val school: School) 

    class School { 
    implicit val school: School = this 
    val pupil: Pupil = new Pupil 
    } 

    val school = new School 

    println(school.pupil.school.eq(school)) 
} 

打印true

+0

Thankyou Dedkov。 – newlogic

相關問題