gpt4 book ai didi

ruby - 如何使用 define_method 指定方法默认参数?

转载 作者:数据小太阳 更新时间:2023-10-29 06:24:53 31 4
gpt4 key购买 nike

define_method 可用于定义方法:

define_method(:m) do |a|
end

等同于:

def m(a)
end

但是,以下使用 define_method 的等效形式是什么:

def m(a=false)
end

请注意,我需要能够在不提供任何参数的情况下调用 m()

最佳答案

这实际上就像您在 Ruby 1.9 中所期望的那样工作!

define_method :m do |a = false|
end

如果您需要 1.8 兼容性,但不一定需要闭包来定义您的方法,请考虑使用带有字符串参数的 class_eval 并定期调用 def:

class_eval <<-EVAL
def #{"m"}(a = false)
end
EVAL

否则请按照 philippe 链接到的线程中的建议进行操作。示例:

define_method :m do |*args|
a = args.first
end

关于ruby - 如何使用 define_method 指定方法默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2047226/

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