[英]Scala (x is not a member of the class)
因此,存在一個具有三個int值的對象。 讓我們將此對象稱為藍色。 我正在嘗試制作一個布爾方法,如果藍色的Int值有效,則返回true。 每個Int都有不同的限制。 此方法稱為isBlueValid
例如,藍色由整數x,y,z組成。 x的值必須在10到20之間,而y和z的值必須在30到50之間。
所以這是我的代碼示例
case class Blue(x : Int, y : Int, z : Int){
def isValidBlue(blue: Blue) : Boolean = {
if(Blue.x > ... && Blue.x <....... &&Blue.y <...............)
true
else
false
但是每次我嘗試運行該方法時,它總是說x不是Blue的成員,y不是Blue的成員,而z不是Blue的成員。
救命?
編輯 :您應該用this.x
或x
替換Blue.x
Blue.x
試圖從案例類的伴隨對象而不是this
實例中調用方法或val。
似乎您想要這樣的東西:
case class Blue(x: Int, y: Int, z: Int) {
def isValid: Boolean = ((x < 21 && x > 9) && (y > 29 && y < 51) && (z > 0)) // filled in z condition with whatever
}
if(..) true else false
返回Boolean
時是多余的,因為if
條件返回相同的Boolean
值。
scala> val test = Blue(1,2,3)
scala> test.isValid
res0: Boolean = false
scala> val test = Blue(10,30,3)
scala> test.isValid
res1: Boolean = true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.