これらの演算子 (<:<、<%<、=:=) がここで何をするかを尋ねる関連する質問があることがわかりました。
<:<、<%<、および =:= は Scala 2.8 で何を意味し、どこに文書化されていますか?
しかし、私はまだそれらの実装について混乱しています。特に、特定の関係をアサートする暗黙のパラメーターを配置すると、自動的に適切にキャストされたかのように変数を使用できると思います。たとえば、次のようにコンパイルされます。
class Foo[T](a: T) {
def splitit(implicit ev: T <:< String) = a split " "
}
しかし、これはコンパイラで実際にどのように機能するのでしょうか? これらの演算子に対する魔法のようなコンパイラのサポートはありますか? そうでない場合、定義からこの種の関係を推測できるようにする基本的なメカニズムは何ですか? (このメカニズムは、これらの演算子が動作できるようにするために特別に追加されたものですか? また、これらの特定の演算子にどの程度固有のものですか?) コンパイラによる型の解釈を何らかの方法で変更する、このような追加の暗黙のパラメーターを配置できることは、少し魔法のように思えます。