gpt4 book ai didi

ruby - 如何实现! ruby 中的样式方法

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

在 Ruby 中,我们有类似 string.upcase 的方法,它返回一个新的字符串和 string.upcase!它修改了调用它的字符串。

我想知道如何编写自己的 !方法的版本。

我正在编写一个在两个字符之间搜索字符串的方法。我希望它修改字符串以等于新字符串。

如何做到这一点。 (我有找到新字符串的方法只需要知道如何修改调用者)

回答

class String
def find_between(marker_one , marker_two)
self[/#{Regexp.escape(marker_one)}(.*?)# {Regexp.escape(marker_two)}/m, 1]
end

def find_between!(marker_one , marker_two)
self.replace(find_between(marker_one, marker_two))
end
end

最后 self.replace 是需要的

最佳答案

就像一个普通的方法:

def mathod_name!
# whatever
end

然而,惯例是,只有当您有同名方法的“正常” 版本并且此版本在某种程度上“危险”.

您可以使用 String#[]= 就地修改字符串。

关于ruby - 如何实现! ruby 中的样式方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40931191/

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