gpt4 book ai didi

Ruby 方法() 方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:55 28 4
gpt4 key购买 nike

我想了解 Ruby 方法 methods() 是如何工作的。
我尝试使用“ruby 方法”在 Google 上搜索,但这不是我需要的。
我也看过 ruby​​-doc.org,但我没有找到这种方法。

你能详细解释一下它是如何工作的或者给我一个链接吗?

更新

我用 methods() 方法做了实验,得到了这样的结果:

'lab rat'代码

class First
def first_instance_mymethod
end
def self.first_class_mymethod
end
end
class Second < First
def second_instance_mymethod
end
def self.second_class_mymethod
end
end

使用类

#returns available methods list for class and ancestors
puts Second.methods.grep(/mymethod/)
# => second_class_mymethod
# => first_class_mymethod

#returns Class methods list for current class only
puts Second.methods(false)
# => second_class_mymethod

使用对象

obj = Second.new
def obj.obj_singleton_mymethod
end

#returns available methods list for object and ancestors
puts obj.methods.grep(/mymethod/)
# => second_instance_mymethod
# => first_instance_mymethod

#returns current object class methods
puts obj.methods(false)
# => obj_singleton_mymethod

最佳答案

接受的答案遗漏了一点。 keymone 在评论中给出了更完整的答案 - .methods 返回一个符号数组,这些符号是在给定 实例 上定义的所有方法的名称。例如:

irb(main):012:0> object = ""
=> ""
irb(main):013:0> object.instance_eval("def foo;:bar;end")
=> nil
irb(main):014:0> object.methods.include?(:foo)
=> true
irb(main):016:0> "".methods.include?(:foo)
=> false

关于Ruby 方法() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6761651/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com