5

在浏览 ruby​​ 文档时,我找到了 replace 方法,但我无法弄清楚该方法的用例是什么。

我唯一能想到的就是内存管理(如果新字符串的长度小于或等于前一个字符串,则不需要重新分配)。

有任何想法吗 ?

4

2 回答 2

3

用例实际上只是如果您想在其他语言中实现类似于传递引用的东西,其中可以直接更改变量的值。因此,您可以将 String 传递给一个方法,该方法可能会将字符串完全更改为其他内容。

但是,您可以通过清空字符串并将一些新字符串附加到空字符串来以更全面的方式实现相同的目的。其他类也有类似的方法(参见 Array 和 Hash)。

但是,如果您发现自己真的觉得需要使用这些方法,那么很有可能,您已经把自己逼到了一个角落,应该寻找另一种出路,而不是需要改变整个字符串的方法(例如,将数据结构传递给方法,而不仅仅是一个字符串)。

于 2012-05-29T13:24:59.577 回答
2

可以使用 replace 方法替换整个字符串,而不是子字符串:

myString = "Welcome to PHP!"

=> "欢迎使用 PHP!"

myString.replace "Goodbye to PHP!"

=> “再见 PHP!”

来源 - http://www.techotopia.com/index.php/Ruby_String_Replacement,_Substitution_and_Insertion#Changing_a_Section_of_a_String

于 2012-05-29T13:20:38.970 回答