0

是否可以编写一个函数,该函数接受一个字符串块,对字符串执行某些操作,然后返回一个包含字符串的数组?

def collect_string(&block)
   # just toss them into an array and return it
   return ...
end

a = collect_string {
   "string 1"
   "string 2"
   "string 3"
}

当我打印出是什么时a,我应该得到

["string 1", "string2", "string3"]

现在假设我决定改变主意,想先用琴弦做更多的事情。也许我想先删除所有的元音,或者只抓住前 3 个字符。

4

1 回答 1

0

这真的不是积木的用途。无论如何,您都将创建一个字符串数组,那么为什么不使用数组开始呢?

def collect_string &block
  v = block.call
  # do something with v
end

# block returning array
a = collect_string {[
   "string 1",
   "string 2",
   "string 3"
]}

如果您在示例中使用块,则它将仅返回“字符串 3”,即最后一个评估的表达式。以前的字符串丢失。

于 2012-07-11T20:22:10.380 回答