scalaの特性「不変」についての洞察を共有してもらえますか? 一見、これは私が構築しているクラスを制限するための優れた制御構造だと思いましたが、奇妙なことに、プリミティブ型はこれを拡張しないことに気付きました。これには理由がありますか?構文を Immutable または AnyVal にバインドする方法はありますか?
class Test {
def test[T<:Immutable](x:T)={
println("passes "+x)
}
case class X(s:String) extends Immutable
test(X("hello")) //passes
// test("fail") - does not pass compiler
}