如何简化 Ruby 中的 split、iterate.each 和 join 操作?-- Ruby 初学者

5
words = self.tag.split
words.each { |word| word = word.stem }
self.tag = words.join(' ')

针对给定的句子,我想在每个单词上执行stem操作。

是否有简化这段代码的方法?

2个回答

13
self.tag = self.tag.split.map(&:stem).join(' ')

好多了;我想知道为什么我总是忘记呢?(我几乎总是这样 :( +1 - Dave Newton

2
self.tag = self.tag.split.collect { |w| word.stem }.join(' ')

并不是我一定推荐这样做。


做这个操作不会重新分配self.tag的值:a.split.collect{|word| word.reverse}.join => "sihteratset", a => "this are test" - Gazler
Dave,你能推荐一个更好的解决基础问题的方法吗?我想点赞。 - Michael Durrant
@MichaelDurrant 不太确定你的意思。我只是不认为对初学者来说,在一行代码中塞入很多功能总是有益的 :) - Dave Newton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接