2015-10-25 83 views
2

是參數的I型具有這樣的代碼:爲什麼對象不能爲PROC對象

p = ->(x : Object) { x } 
puts p.call(3) 

,當我編譯它我收到這樣的例外:

不能被用作一個Proc參數類型,但使用更具體的類型

有人可以解釋我爲什麼這是,爲什麼Proc無法通過對象參數化?

回答

2

它說「還沒有」。這將可能在未來支持;-)

主要原因是,Object意味着任何東西,包括價值傳遞的對象,具有不同的大小。這意味着編譯器必須爲任何類型分配足夠的空間,或者更易於使用的自動box和unbox值類型。這種最新的方法可能會在未來版本的編譯器中實現。

相關問題