断言fido.methods.size>;0在ruby代码中是什么意思?
我现在开始学习一些ruby,正在做ruby Koans练习。然后我陷入了代码中:断言fido.methods.size>;0在ruby代码中是什么意思?,ruby,methods,Ruby,Methods,我现在开始学习一些ruby,正在做ruby Koans练习。然后我陷入了代码中: def test_objects_have_methods fido = Dog.new assert fido.methods.size > 0 end 我对fido.methods感到困惑。它指的是什么 谢谢大家! 它返回实例上所有可调用方法的数组fido 我还没有在生产中使用过它,但在调试或编写奇怪的脚本时,它会非常好。它返回实例fido上所有可调用方法的数组 我还没有在生产中使
def test_objects_have_methods
fido = Dog.new
assert fido.methods.size > 0
end
我对fido.methods
感到困惑。它指的是什么
谢谢大家! 它返回实例上所有可调用方法的数组
fido
我还没有在生产中使用过它,但在调试或编写奇怪的脚本时,它会非常好。它返回实例
fido
上所有可调用方法的数组
我还没有在生产中使用过它,但在调试或编写奇怪的脚本时,它会非常好。关于所有内容都有很好的文档: 返回obj的公共和受保护方法的名称列表。这将包括obj祖先中可访问的所有方法。如果可选参数为
false
,则返回obj的公共和受保护的单例方法数组,该数组将不包括obj中包含的模块中的方法
由于您是在
Dog
实例上调用它,该实例显然是从Object
派生而来的,因此方法列表包括所有在Object
上定义的方法。关于所有方法,都有很好的文档说明:
返回obj的公共和受保护方法的名称列表。这将包括obj祖先中可访问的所有方法。如果可选参数为false
,则返回obj的公共和受保护的单例方法数组,该数组将不包括obj中包含的模块中的方法
由于您是在
Dog
实例上调用它的,该实例显然是从Object
派生而来的,因此该方法列表包含了在Object
上定义的所有方法,谢谢!但是在这种情况下,fido
没有任何方法,所以大小是0?但代码显示大小大于0?对不起,我能再问你一个问题吗?代码def fido.wag:fidos_wag end
中的:fidos_wag
是什么?这是一种属性吗?还是别的?fido是类狗的一个实例。类Dog
继承自Object
,这给了它相当多的默认方法。像nil?
,是一个?
,对象id
之类的东西。所以大小永远不会是0。:fido_wag
是一个符号,谢谢!但是在这种情况下,fido
没有任何方法,所以大小是0?但代码显示大小大于0?对不起,我能再问你一个问题吗?代码def fido.wag:fidos_wag end
中的:fidos_wag
是什么?这是一种属性吗?还是别的?fido是类狗的一个实例。类Dog
继承自Object
,这给了它相当多的默认方法。像nil?
,是一个?
,对象id
之类的东西。因此大小永远不会是0。:fido_wag
是一个符号