我有这样的代码:
p = ->(x : Object) { x } puts p.call(3)
当我编译它时,我收到这样的例外:
不能用作Proc参数类型,请使用更具体的类型
有人可以解释我为什么会这样,为什么Proc不能被Object参数化?
它说“尚未” . 这可能会在将来得到支持;-)
主要原因是 Object 表示任何内容,包括按值传递的对象,大小不同 . 这意味着编译器必须为任何类型或更自由的box和unbox值类型分配足够的空间 . 这种最新方法可能在未来版本的编译器中实现 .
Object
1 回答
它说“尚未” . 这可能会在将来得到支持;-)
主要原因是
Object
表示任何内容,包括按值传递的对象,大小不同 . 这意味着编译器必须为任何类型或更自由的box和unbox值类型分配足够的空间 . 这种最新方法可能在未来版本的编译器中实现 .