4

PaulP が繰り返される長い@specializedシーケンスを短縮するためのクールなトリックを示したのを覚えていますが、元の投稿はもう見つかりません。私が持っているように

trait Foo[@specialized(Int, Float, Double, Long, Char, Boolean) A]
trait Bar[@specialized(Int, Float, Double, Long, Char, Boolean) A]

どういうわけかこれを別名にする可能性がありました...

type SpecDef = ???
trait Foo[SpecDef ??? A]
trait Bar[SpecDef ??? A]
4

1 に答える 1

7

答えはオブジェクトにありますscala.Specializable:

import scala.{specialized => spec, Specializable => Spec}
final val MySpec = new Spec.Group((Int, Float, Double, Long, Char, Boolean))

trait Foo[@spec(MySpec) A]
trait Bar[@spec(MySpec) A]
于 2013-02-10T13:26:40.790 に答える