gpt4 book ai didi

ruby - 何时使用 `method_missing`

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

在下面的代码中,roar 方法没有定义在 Lion 类中,但仍然可以使用 method_missing 调用。

class Lion
def method_missing(name, *args)
puts "Lion will #{name}: #{args[0]}"
end
end

lion = Lion.new
lion.roar("ROAR!!!") # => Lion will roar: ROAR!!!

在什么情况下以及如何使用此method_missing?使用安全吗?

最佳答案

如果您以预期的方式使用它并且不要得意忘形,那么使用它是完全安全的。毕竟,并不是所有你能做的事情都值得去做。

method_missing 的优点是您可以以独特的方式响应各种事物。

缺点是你不会宣传你的能力。其他希望您respond_to? 的对象不会得到确认,并且可能会以您不希望的方式处理您的自定义对象。

对于构建领域特定语言并在组件之间提供非常松散的粘合,这种事情是无价的。

一个很好的例子就是 Ruby OpenStruct。类。

关于ruby - 何时使用 `method_missing`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759902/

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