我正在学习如何each在ruby中工作的细节,我尝试了以下代码行:
p [1,2,3,4,5].each { |element| el }
Run Code Online (Sandbox Code Playgroud)
结果是一个数组
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
但我不认为我完全理解为什么.为什么each同一个数组的返回值?难道每个都不提供迭代方法吗?或者只是该each方法返回原始值的常见做法?
我有一个 Rails 应用程序,它使用 simple_feed gem 读取 RSS 提要。然而,某些提要无法正确读取 - 即某些标题具有:
`‘`
Run Code Online (Sandbox Code Playgroud)
或者
`’`
Run Code Online (Sandbox Code Playgroud)
代替: ”
我的标题读作:
i.title
Run Code Online (Sandbox Code Playgroud)
我以为 gsub 可以轻松解决这个问题,但我很难让它发挥作用。我试过:
i.title.gsub(%r[‘]/, '"')
Run Code Online (Sandbox Code Playgroud)
我什至不确定这是否有效,但它注释掉了#.
然后我尝试:
i.title.gsub(%r["‘"]/, '*')
Run Code Online (Sandbox Code Playgroud)
结果是:
C:/Sites/foo/app/views/bar/show.html.erb:20: syntax error, unexpected ','
...( i.title.gsub(%r["‘"]/, '*') )
Run Code Online (Sandbox Code Playgroud)
我以前没有真正使用过 gsub,我正在尝试解决这些示例。有什么可以帮助我弄清楚我做错了什么吗?
我想使用以下映射替换字符串中的字母:
letters = ("a".."z").to_a.zip(("b".."z").to_a.push("a"))
[["a", "b"], ["b", "c"], ["c", "d"], ["d", "e"], ["e", "f"], ["f", "g"], ["g", "h"], ["h", "i"], ["i", "j"], ["j", "k"], ["k", "l"], ["l", "m"], ["m", "n"], ["n", "o"], ["o", "p"], ["p", "q"], ["q", "r"], ["r", "s"], ["s", "t"], ["t", "u"], ["u", "v"], ["v", "w"], ["w", "x"], ["x", "y"], ["y", "z"], ["z", "a"]]
Run Code Online (Sandbox Code Playgroud)
从这里我只想替换字符串中的所有字母,所以我正在尝试的是
str = "Somebody help I am on drugs and can't program! Just kidding."
letters.each {|letter| str.gsub!(letter[0],letter[1])}
puts str
Run Code Online (Sandbox Code Playgroud)
回报
Saaaaaaa aaaa I aa …Run Code Online (Sandbox Code Playgroud)