4
我發現我偶爾想要在特質或其他地方寫一個任意的斷言,但是我想斷言的東西還沒有完全定義。特質中的惰性斷言
trait Foo {
val aList: List[String]
val anotherList: List[String]
def printPairs = aList.zip(anotherList).foreach(println)
assert(aList.size == anotherList.size) // NullPointerException, because these references are undefined right now.
}
我想的是什麼我要找的是(總是)後級大火被完全定義和實例化一個鉤的推廣,因爲這是哪門子的檢查,我一般會把在構造函數。
我認爲七分鐘直到回答是我的記錄。你說得對,這不是我想到的,但它非常接近。擴展類必須執行Early Definition子句,否則斷言將失敗,並且子句必須通過斷言,否則斷言將失敗。無論哪種方式,只有斷言存活的類才能被實例化。 – randomstatistic
對於如何在Scala中實現這個問題,你可以經常看到2分鐘的答案,有相當多的聲望獵手,你可以讓你鬆懈;)很高興它有幫助! –
'class Bar(val aList:List [String],val anotherList:List [String])擴展Foo'(一個稍微乾淨的版本) – jwvh