任何人都可以分享对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
}