如何添加方法,或重命名方法名称?
我有这样的代码:
"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