2
是参数的I型具有这样的代码:为什么对象不能为PROC对象
p = ->(x : Object) { x }
puts p.call(3)
,当我编译它我收到这样的例外:
不能被用作一个Proc参数类型,但使用更具体的类型
有人可以解释我为什么这是,为什么Proc无法通过对象参数化?
是参数的I型具有这样的代码:为什么对象不能为PROC对象
p = ->(x : Object) { x }
puts p.call(3)
,当我编译它我收到这样的例外:
不能被用作一个Proc参数类型,但使用更具体的类型
有人可以解释我为什么这是,为什么Proc无法通过对象参数化?
它说“还没有”。这将可能在未来支持;-)
主要原因是,Object
意味着任何东西,包括价值传递的对象,具有不同的大小。这意味着编译器必须为任何类型分配足够的空间,或者更易于使用的自动box和unbox值类型。这种最新的方法可能会在未来版本的编译器中实现。