首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.capitalize和.capitalize(或.map & .map!...etc.)有什么区别?红宝石

.capitalize和.capitalize(或.map & .map!...etc.)有什么区别?红宝石
EN

Stack Overflow用户
提问于 2016-12-21 02:25:18
回答 2查看 315关注 0票数 1

学习如何使用Ruby编写代码,并尝试先从测试中学习。我绊倒了一些有趣的东西。

我试着把每个词大写,但是

代码语言:javascript
复制
title = 'stuart little'
a = title.split

a.each do |x|
x.capitalize
end

a.join(' ')

这一次的结果是“斯图尔特小”

但是如果我加上!资本化

代码语言:javascript
复制
title = 'stuart little'
a = title.split

a.each do |x|
x.capitalize!
end

a.join(' ')

结果就是我想要的结果是“斯图尔特·利特尔”

只要.capitalize就行了,不是吗?因为我只是在大写单词。是什么造就了.capitalize!在这种情况下工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-21 02:28:23

当一个方法在Ruby的末尾有一个!时,它通常被称为bang方法。感叹号表示该方法是另一种方法的危险版本。

在本例中,capitalize!将修改您的字符串,而capitalize将返回一个新的string对象。因为稍后您将调用原始对象(a中的字符串),所以您的代码将只使用capitalize!。要使代码与capitalize一起工作,必须将数组的索引设置为方法的结果,例如a[index] = x.capitalize

票数 0
EN

Stack Overflow用户

发布于 2016-12-21 02:41:12

如果您真的想学习,我喜欢访问地图 for 地图!的源代码。消息来源会告诉你有什么区别

map-为self的每个元素调用给定的块一次。

map!-为self的每个元素调用一次给定的块,用块返回的值替换元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41254150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档