【发布时间】:2019-05-10 14:29:45
【问题描述】:
我正在尝试获取一组符号,
a = [:apple, :banana ,:grape, :black]
并根据最后一个字母在每个符号的末尾添加一个字符串。如果符号以e 结尾,则添加"hello",否则添加"hi"。我想得到:
[:applehello, :bananahi]
我做到了:
n = []
a.each do |b|
if (b[-1] == "e")
n.push b.to_s + "hello"
else
n.push b.to_s + "hi"
end
end
p n
我必须把它转换成字符串。如何获得符号的最终输出?
也使用了 sub-
a.each do |q|
if (q[-1]=="e")
then n.push q.to_s.sub(/e/,"ehello")
else
n.push q.to_s.sub(/\z/,"ahi")
end
end
p n
【问题讨论】:
-
Ursus 的评论是正确的。您需要将每个符号转换为字符串,以便对其进行变异,然后将新字符串转换为符号。
-
:grape和:black在a中发生了什么?