相关疑难解决方法(0)

为什么Array#每个都返回一个具有相同元素的数组?

我正在学习如何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方法返回原始值的常见做法?

ruby arrays each self

19
推荐指数
2
解决办法
2万
查看次数

在 Rails 中使用 gsub 将字符串替换为符号

我有一个 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,我正在尝试解决这些示例。有什么可以帮助我弄清楚我做错了什么吗?

ruby-on-rails

3
推荐指数
1
解决办法
1万
查看次数

用Ruby替换字符串中的字母

我想使用以下映射替换字符串中的字母:

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)

ruby string replace

1
推荐指数
1
解决办法
3685
查看次数

标签 统计

ruby ×2

arrays ×1

each ×1

replace ×1

ruby-on-rails ×1

self ×1

string ×1