在Rails中创建或重命名方法



如何添加方法,或重命名方法名称?

我有这样的代码:

"X Y".split().first => X
"X Y".split().last => Y

在字符串中,总是只有一个空格。

我想把这个改成:

"X Y".a  => X
"X Y".b  => Y

如何实现这一目标?Ryby 2.7, Rails 6

不确定为什么要这样做,因为您可以在字符串的任何位置使用:

"abc".chr == "a"
"abc"[0] == "a"
"abc"[-1] == "c"

如果你真的想给字符串添加方法,创建一个模块:

module MyStringExtensions
def a
chr
end
def b
self[-1]
end
end

你可以用模块扩展字符串实例来增加它们:

"abc".extend(MyStringExtensions).a # "a"

你也可以monkeypatch String类,如果你真的想:

String.include(StringExtensions)

使用模块通常比重新打开别人的类更好,因为它为调试提供了更好的堆栈跟踪。

您可以像这里描述的那样为String类创建扩展方法。

class String
def a
self.split().first
end
...
end

最新更新