【发布时间】:2019-05-14 15:41:01
【问题描述】:
我想根据每个符号的最后一个字母,通过在符号末尾添加 e 或 s 来改变符号数组。例如数组:
[:alpha, :beta, :kappa, :phi]
将修改为:
[:alphae, :betae, :kappae, :phis]
我可以使用if ... else 条件和带有字符串数组的正则表达式来做到这一点,但不能使用符号。我试图将我的符号转换为字符串,对其进行变异,然后再转换回来,但出现错误
s = [:aplha, :beta, :kappa, :phi]
def pluralSym(sym, out = [])
sym.each do |s|
s.to_s
if s.match(/a$/)
out = s.sub(/a$/, "ae")
elsif s.match(/i$/)
out = s.sub(/i$/, "is")
else
out = s
end
out.to_sym
end
end
p pluralSym(s)
block in pluralSym': undefined method `sub' for :aplha:Symbol
【问题讨论】:
-
我想知道如何在 Ruby 中改变符号数组。下面已经回答了这个问题。我的作业有问题。