2

私はScalaが初めてです...

とにかく、私は次のようなことをしたい:

val bar = new Foo("a" -> List[Int](1), "b" -> List[String]("2"), ...)
bar("a") // gives List[Int] containing 1
bar("b") // gives List[String] containing "2"

私がするときの問題:

class Foo(pairs: (String, List[_])*) {
  def apply(name: String): List[_] = pairs.toMap(name)
}

pairsArray[(String, List[Any]) (またはそのようなもの)になり、「異なる型」ではなく 1 つの型であるapply()ため、とにかく間違っています。List[_]varargs * がタプルを返したとしても、どうやってbar("a")a を返すのかまだわかりませんList[OriginalTypePassedIn]。それで、実際にこれを行う方法はありますか?Scala は非常に柔軟に見えるので、これを行うための高度な方法が必要であると思われます。

4

2 に答える 2