2013-07-23 23 views
1

下面類在該行val userList : List[User]拋出一個編譯器錯誤:Scala編譯器錯誤:只有類可以有聲明,但未定義的成員

Multiple markers at this line 
    - only classes can have declared but undefined members 
    - only classes can have declared but undefined members 

這裏是整個代碼:

class SimilarityData { 

    case class User(id: String, jCoeff : Int) 

    def getUsers() = 
    {  
    val userList : List[User] 
    userList :+ new User("1" , 1);  
    } 

} 

是什麼原因造成錯誤?

回答

2

首先userListval這意味着你需要初始化它。 其次userList類型List[String]。您無法將User添加到它。這是它應該如何:

val userList = List.empty[User] 
userList :+ new User("1" , 1); 
+0

爲什麼我不能使用'val userList:List [User] = _'? –

+0

@ user470184試一試...試驗&學習! –

+0

我應該澄清:+不會修改現有列表,它會創建一個新列表並將其返回。 –

4

您必須提供本地val秒的初始值:

VAL用戶列表=列表(新用戶( 「1」,1))

的錯誤提醒你:

  • a val必須分配一個初始值,在您的情況下,作爲方法體中的本地值。

  • 上一個抽象類或性狀的val可以保留未初始化 - 儘管它必須由沿線某處(混凝土)的子類進行初始化,

相關問題