Ruby:kind_of?与instance_of?与is_a?

有什么区别?我什么时候应该使用哪个?为什么有这么多?



暮色呼如
浏览 1010回答 3
3回答

慕容708150

有什么区别?从文档中:-(布尔)instance_of?(class)返回trueif obj是给定类的实例。和:-(布尔值)is_a?(class)-(布尔值)kind_of?(class)返回trueif class是的类obj,或者class是包含的的超类之一obj或模块之一obj。如果不清楚,最好弄清楚到底是什么还不清楚,以便可以改进文档。我什么时候应该使用哪个?决不。请改用多态。为什么有这么多?我不会叫两个 “很多”。它们有两个,因为它们做两种不同的事情。

jeck猫

使用,更像Ruby询问对象是否响应您需要的方法respond_to?。这允许最少的界面和不带意识的编程实现。当然,它并不总是适用的,因此,仍然有可能使用您要询问的方法来询问对“类型”(类或基类)的更保守的理解。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby