在这种情况下,有谁可以告诉我原因:
Query(Users) foreach {case (userId, userName) =>
println(userId + ", " + userName) }
Scala识别userId,但在这种情况下:
val l = List[(Int, String)]()
Query(Users) foreach {
case (userId, userName) =>
l::(foo(List[(userId, userName)]))
}
它不是吗? (例如,“=>”右侧的userId在第二种情况下被识别,但不是第一种情况)
用户是一个光滑的数据库,如下所示:
object Users extends Table[(Int, String)]("Users") {
def userId = column[Int]("UserId", O.PrimaryKey, O.AutoInc)
def userName = column[String]("UserName")
def * = userId ~ userName
}
答案 0 :(得分:1)
我认为你的意思是:
l::(foo(List((userId, userName))))
当您在方括号之间放置内容时,您尝试键入列表,我假设您确实想要将Tuple
userId
和userName
添加到列表中。
如果您想要做的只是将List
放入Tuple
并且您不需要Query(Users) foreach { tup =>
l::(foo(List(tup)))
}
提取器,您也可以这样写它:
{{1}}