Я хочу изменить массив символов, добавив 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