学习如何使用Ruby编写代码,并尝试先从测试中学习。我绊倒了一些有趣的东西。
我试着把每个词大写,但是
title = 'stuart little'
a = title.split
a.each do |x|
x.capitalize
end
a.join(' ')这一次的结果是“斯图尔特小”
但是如果我加上!资本化
title = 'stuart little'
a = title.split
a.each do |x|
x.capitalize!
end
a.join(' ')
结果就是我想要的结果是“斯图尔特·利特尔”
只要.capitalize就行了,不是吗?因为我只是在大写单词。是什么造就了.capitalize!在这种情况下工作?
发布于 2016-12-21 02:28:23
当一个方法在Ruby的末尾有一个!时,它通常被称为bang方法。感叹号表示该方法是另一种方法的危险版本。
在本例中,capitalize!将修改您的字符串,而capitalize将返回一个新的string对象。因为稍后您将调用原始对象(a中的字符串),所以您的代码将只使用capitalize!。要使代码与capitalize一起工作,必须将数组的索引设置为方法的结果,例如a[index] = x.capitalize
https://stackoverflow.com/questions/41254150
复制相似问题