【发布时间】:2025-11-24 04:50:02
【问题描述】:
我在尝试了解如何创建自己的 method_missing 方法时遇到了这段代码,但我不明白。 我不明白的是这些部分:method_sym[-1] == "=" 和 method_sym[0..-2] 他们指的是什么?我在 irb 中尝试了一些模拟,但这只是返回了一些奇怪的东西。
谁能帮我分析一下?我真的很感激。谢谢!
class UberHash
def method_missing(method_sym, *args, &block)
if method_sym[-1] == "="
instance_variable_set("@#{method_sym[0..-2]}", args[0])
else
instance_variable_get("@#{method_sym}")
end
end
end
【问题讨论】:
-
这是重塑openstuct的一种方式。
-
刚刚在 OpenStruct 上达到顶峰,看起来很有趣,谢谢!
标签: ruby class methods instance-variables method-missing