序列我想更新Scala中的一個序列,我有這樣的代碼:斯卡拉檢查Eithers
def update(userId: Long): Either[String, Int] = {
Logins.findByUserId(userId) map {
logins: Login => update(login.id,
Seq(NamedParameter("random_date", "prefix-" + logins.randomDate)))
} match {
case sequence : Seq(Nil, Int) => sequence.foldLeft(Right(_) + Right(_))
case _ => Left("error.logins.update")
}
}
凡findByUserId
返回Seq[Logins]
和update
返回Either[String, Int]
其中Int
是更新的行, 和數量String
將是錯誤的描述。
我想要實現的是返回一個String
,如果在更新列表時發生錯誤或者更新列的總數爲Int
。
的代碼不工作,我想我應該做的事情在match
不同,我不知道我怎麼能檢查是否在Either
的Seq
在S的每一個元素是一個Right
值。
您似乎有兩個叫'update'的函數 - 這裏顯示的函數,然後是一個需要兩個參數的函數(第一個是'login.id'的第一個參數,第二個參數是' String')。這個函數返回什麼?此外,'login'來自哪裏 - 您傳遞給'map'的函數有一個輸入'login',而不是'login'。 – childofsoong