我正在嘗試使用下面的代碼將專案附加到 a 中Seq,我在 Scala 中意識到 aSeq可能是不可變的,因此這可能無法按我預期的那樣作業。
object Main extends App {
val x: Long = 122222222
val y: Option[Long] = Some(133333333)
// val y: Option[Long] = None
val z: Option[Long] = Some(144444444)
val users: Seq[Long] = Seq(x)
if (y.isDefined) users.appended(y)
if (z.isDefined) users.appended(z)
println(users)
println(users.length)
}
謝謝!
uj5u.com熱心網友回復:
這可能是最簡單的解決方案:
val users: Seq[Long] = Seq(x) y.toSeq z.toSeq
toSeq將None變成Nil和Some(x)變成List(x),然后您可以連接串列。
uj5u.com熱心網友回復:
appended(value)回傳 a new sequence consisting of all elements of this sequence followed by value.。它不會就地更改。
如果你想保持你的代碼的樣子,你可以這樣做
var users: Seq[Long] = Seq(x) // change val to var
if (y.isDefined) users = users.appended(y.get)
if (z.isDefined) users = users.appended(z.get)
注意:這
if (y.isDefined) users = users.appended(y.get)
if (z.isDefined) users = users.appended(z.get)
可以改為
y.foreach(users : = _)
z.foreach(users : = _)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/312786.html
標籤:斯卡拉
