我目前正在使用以下代码:
text = "a, 1; b, 2"
temp = []
text.gsub(/\s+/, "").split(";").each {|x| temp << x.split(",")}
temp # => [["a","1"],["b","2"]]
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种光滑的方式可以在没有额外temp = []线路的情况下完成所有这一切?如何将每个块执行的结果加入到数组中?
谢谢!
对于任何Ruby新手来说,Enumerable模块都是必读的.使用Enumerable #map代替:
text.gsub(/\s+/, "").split(";").map { |x| x.split(",") }
#=> [["a", "1"], ["b", "2"]]
Run Code Online (Sandbox Code Playgroud)
看来你不熟悉函数式编程的原则,在这里它是一个链接,它可以帮助你(特别是:看到这个).每次你写一个each思考是否有一些替代方案(可以像编写文件一样做副作用,但更新变量通常是个坏主意).
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |