您好我想循环一组字符串并将它们从String类型转换为ObjectId类型。
我试过这种方式:
followingIds.foreach(e => e = new ObjectId(e))
但是我不能这样做。
我也尝试使用“for”但我不知道如何访问Set by Index的每个位置。
for (i <- 0 until following.size) {
following[i] = new ObjectId(following[i])
}
这既不起作用,
任何人都可以帮助我吗?!?请!
答案 0 :(得分:12)
如果你坚持可变性,可以选择以下内容:
var followingIds = Set("foo", "bar")
followingIds = followingIds.map(e => new ObjectId(e))
但是你可以用不可变的东西使你的代码变得更加狡猾:
val followingIds = Set("foo", "bar")
val objectIds = followingIds.map(e => new ObjectId(e))
现在变量(值)名称非常具有描述性
答案 1 :(得分:0)
Java的1.4状?
val mutableSet: collection.mutable.Set[AnyRef] = collection.mutable.Set[AnyRef]("0", "1", "10", "11")
//mutableSet: scala.collection.mutable.Set[AnyRef] = Set(0, 1, 10, 11)
for (el <- mutableSet) el match {
case s: String =>
mutableSet += ObjectId(s)
mutableSet -= s
s
case s => s
}
mutableSet
//res24: scala.collection.mutable.Set[AnyRef] = Set(ObjectId(0), ObjectId(11), ObjectId(10), ObjectId(1))