3

こんにちは、文字列のセットをループして、文字列型から ObjectId 型に変換したいと思います。

私はこの方法を試しました:

followingIds.foreach(e => e = new ObjectId(e))

しかし、私はその割り当てを行うことができません。

「for」も使ってみましたが、Set by Indexの各位置にアクセスする方法がわかりません。

for (i <- 0 until following.size) {
   following[i] = new ObjectId(following[i])
}

これはどちらも機能しません。

誰でも私を助けることができますか?!? お願いします!

4

2 に答える 2

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))

変数 (値) の名前はかなりわかりやすいものになりました

于 2012-12-02T20:00:23.127 に答える
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))
于 2012-12-02T21:14:22.523 に答える