gpt4 book ai didi

ruby - 如何编写将对其进行修改的 String monkeypatch 方法

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

我想通过提供 shuffleshuffle! 方法来修改 Ruby 的 String 类。

class String
def shuffle
self.split('').shuffle.join
end
end

它返回一个新的字符串。我如何编写一个 shuffle! 方法来修改字符串而不是返回副本?


我试图自己弄清楚,但 String 的源代码在 MRI 中是 C 语言。

最佳答案

你不能赋值给self,这可能是第一个想到的。但是,有一个方便的方法 String#replace ,您知道,它会替换字符串的内容。

class String
def shuffle
split('').shuffle.join
end

def shuffle!
replace shuffle
end
end

s = 'hello'
s.shuffle!
s # => "lhleo"

关于ruby - 如何编写将对其进行修改的 String monkeypatch 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15575314/

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