【发布时间】:2018-08-28 10:44:51
【问题描述】:
我在下面有这段代码,我的最后一个 elsif 语句有两个命令。问题是当我运行代码时,只执行第一个命令。
例如,如果我运行 translate("banana"),它会返回香蕉湾,正确地将“#{x[0]}ay”添加到数组香蕉中,但是,删除 x[0] 的第二个命令不会执行,我得到了香蕉湾作为回报,而不是预期的 ananabay。
你认为发生了什么?
代码在这里:
def translate(word)
vowels = ["a","e","i","o","u"]
consonants = ["b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"]
word = word.split
word.map{ |x|
if vowels.include? x[0]
x=x << "ay"
elsif consonants.include? x[0] && x[1]
"#{x[2..-1]}#{x[0]}#{x[1]}ay"
elsif consonants.include? x[0]
x = x << "#{x[0]}ay"
x.delete(x[0])
x
end
}.join(" ")
end
【问题讨论】:
标签: arrays ruby methods arguments notation