1

以前ここに投稿された質問に対する次の回答が与えられた場合、fac 関数をコンストラクター引数を取るように変更するにはどうすればよいでしょうか?

class BalanceActor[T <: Actor](val fac: () => T) extends Actor {
  val workers: Int = 10

  private lazy val actors = new Array[T](workers)

  override def start() = {
    for (i <- 0 to (workers - 1)) {
      actors(i) = fac() //use the factory method to instantiate a T
      actors(i).start
    }
    super.start()
  }
}
4

1 に答える 1

5

String引数の場合:

class BalanceActor[T <: Actor](val fac: String => T) extends Actor ...

A引数の場合:

class BalanceActor[A, T <: Actor](val fac: A => T) extends Actor ...

于 2013-01-18T19:40:29.823 に答える