型パラメータ指定のスタンドアロンのコロンは、より複雑で複雑なパラメータ呼び出しのために実際には簡略化されています(構文糖)。
例:def f[N: Numeric](n: N) = ...
が本当にある:def f[N](n: N)(implicit ev: Numeric[N]) = ...
f(x)
が呼び出されたときにNumeric[x.type]
と一致する範囲内の暗黙のがなければならないことを意味。あなたの例のコードの断片でそう
、:
私たちが実際にそれをコンパイルするためにちょうど十分なスケルトンコードを提供することで、これを実証することができますdef getSomeValue[T <: Command : Foo : Bar] = ...
コンパイラはに、おおよそ、以下のことになります。
class Command {}
class Foo[F] {}
class Bar[B] {}
class Cmd extends Command
def getSomeValue[T <: Command : Foo : Bar](t: T) = t
getSomeValue(new Cmd)(new Foo[Cmd], new Bar[Cmd])
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// implicit parameters supplied explicitly
例をお寄せいただきありがとうございます。 –