0

オブジェクトのメソッドを変更可能な Set に格納したいと考えています。問題なくメソッドを追加できますが、削除できません。

scala> import scala.collection.mutable.Set
import scala.collection.mutable.Set

scala> class c {
     | def f(value: Double) {
     | println(value)
     | }
     | }
defined class c

scala> val o = new c
o: c = c@4b08e64d

scala> val s = Set.empty[Function1[Double, Unit]]
s: scala.collection.mutable.Set[Double => Unit] = Set()

scala> s add o.f
res0: Boolean = true

scala> s.size
res1: Int = 1

scala> s remove o.f
res2: Boolean = false

scala> s.size
res3: Int = 1

タイプ c のオブジェクトを保持するためのセットを作成すると、すべてが期待どおりに機能します。

scala> val s2 = Set.empty[c]
s2: scala.collection.mutable.Set[c] = Set()

scala> s2 add o
res4: Boolean = true

scala> s2.size
res5: Int = 1

scala> s2 remove o
res6: Boolean = true

scala> s2.size
res7: Int = 0

私がやりたいことは可能ですか?

4

1 に答える 1