【发布时间】:2016-09-19 12:31:28
【问题描述】:
尝试理解基本的 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)
}
错误:(25, 42) 值过滤器不是对象 cala.collection.immutable.Map 的成员 for ((k,v)
我预计 val users 持有 Map ?
简单的地图工作正常:
val simpleMap = Map (1 -> "First", 2 -> "Second")
for ((k,v) <- simpleMap ){
println(v)
}
【问题讨论】:
-
当遇到我不完全理解的错误消息时,明确注意
val、def等的返回类型会有所帮助。在您的情况下,您可以明确注意:@ 987654325@. -
试过了,但没有成功——来自 Java 世界没想到,新的行云意味着这么多。第二个表达是什么意思?
-
What is the meaning of second expression ?你能说更多吗?也许 Alexey 已经用他发布的答案回答了你的问题?
标签: scala object dictionary