Scalaの基本的な概念を理解しようとしています。なぜこのコードはコンパイルされないのですか?オブジェクトを含むマップが期待通りに機能しないScala
case class User(
id: Int,
firstName: String,
lastName: String,
age: Int,
gender: Option[String])
object UserRepository {
val users = Map
(1 -> User(1, "John", "Doe", 32, Some("male")),
2 -> User(2, "Johanna", "Doe", 30, None)
)
//def findById(id: Int): Option[User] = users
//def findAll = users.values
def getUsers() = { users }
}
for ((k,v) <- UserRepository.getUsers()){
println(v)
}
エラー:( - UserRepository.getUsers()(K、V)<){
(25、42)値フィルタのオブジェクトcala.collection.immutable.Map のメンバーではありません私はvalユーザーがMapを持っていると思った?
シンプルなマップが正常に動作している:
val simpleMap = Map (1 -> "First", 2 -> "Second")
for ((k,v) <- simpleMap){
println(v)
}
を行います私が完全に理解していないエラーメッセージには、 'val'、' def'などの戻り値の型を明示的に書き留めるのが役に立ちます。あなたの場合、明示的に注記することができます: 'def getUsers():Map [Int、User ] = ... '。 –
Aはそれを試して、それは動作していませんでした - Javaの世界から来て期待していなかった、その新しいラインの雲はそんなに意味する。第二の表現の意味は何ですか? – Levijatanu
'2番目の表現の意味はなんですか?多分アレクセイはあなたの質問に回答したのでしょうか? –