有什么區別?我什么時候應該使用哪個?為什么有這么多?
3 回答

慕容708150
TA貢獻1831條經驗 獲得超4個贊
有什么區別?
從文檔中:
-(布爾)instance_of?(class)
返回trueif obj是給定類的實例。
和:
-(布爾值)is_a?(class)
-(布爾值)kind_of?(class)
返回trueif class是的類obj,或者class是包含的的超類之一obj或模塊之一obj。
如果不清楚,最好弄清楚到底是什么還不清楚,以便可以改進文檔。
我什么時候應該使用哪個?
決不。請改用多態。
為什么有這么多?
我不會叫兩個 “很多”。它們有兩個,因為它們做兩種不同的事情。

jeck貓
TA貢獻1909條經驗 獲得超7個贊
使用,更像Ruby詢問對象是否響應您需要的方法respond_to?。這允許最少的界面和不帶意識的編程實現。
當然,它并不總是適用的,因此,仍然有可能使用您要詢問的方法來詢問對“類型”(類或基類)的更保守的理解。
- 3 回答
- 0 關注
- 1126 瀏覽
添加回答
舉報
0/150
提交
取消