Я написал код, чтобы преобразовать код Морзе в символы. Дело в том, что когда я запускаю этот код на терминале, и через IRB я получаю вывод, как ожидалось, но когда я запускаю тот же код в онлайн-среде IDE, у меня получается другой вывод.Разный выход для одного и того же кода Ruby?
Код:
$morse_dict = {
"a" => ".-",
"b" => "-...",
"c" => "-.-.",
"d" => "-..",
"e" => ".",
"f" => "..-.",
"g" => "--.",
"h" => "....",
"i" => "..",
"j" => ".---",
"k" => "-.-",
"l" => ".-..",
"m" => "--",
"n" => "-.",
"o" => "---",
"p" => ".--.",
"q" => "--.-",
"r" => ".-.",
"s" => "...",
"t" => "-",
"u" => "..-",
"v" => "...-",
"w" => ".--",
"x" => "-..-",
"y" => "-.--",
"z" => "--..",
" " => " ",
"1" => ".----",
"2" => "..---",
"3" => "...--",
"4" => "....-",
"5" => ".....",
"6" => "-....",
"7" => "--...",
"8" => "---..",
"9" => "----.",
"0" => "-----"
}
def decodeMorse(morseCode)
words = morseCode.split(' ')
i=0
sentence = []
while i < words.length
word = words[i].split(' ')
j = 0
while j < word.length
sentence.push($morse_dict.key(word[j]))
if word.length - j == 1
sentence.push(' ')
end
j += 1
end
i += 1
end
sentence = sentence.join().upcase
return sentence
end
sentence= decodeMorse('.... . -.-- .--- ..- -.. .')
puts sentence
выход я получаю в консоли и IRB: HEY JUDE
выход я получаю в онлайн-редакторов: HEYJUDE
Я не понимаю, почему в пространстве (ЭЙ (пробел) JUDE) удаляется и добавляется в конце в онлайн-редакторы (HEYJUDE (пробел)).
Чтобы проверить мой код дальше, я поставил некоторые проверки как Iteration #{j}
во внутреннем цикле while, и у меня появилось очень странное поведение. То, что я получил на выходе был:
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5
Iteration 6
Iteration 7
вместо
Iteration 1
Iteration 2
Iteration 3
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Почему такое поведение? Я пробовал изо всех сил следовать стилю синтаксиса Ruby, но я новичок!
работает для меня , Я предполагаю, что копирование вашего кода в онлайн-среду IDE изменяет пробел где-то. Можете ли вы сохранить код в интерактивной среде IDE и показать нам ссылку, которая воспроизводит проблему, или еще лучше скопировать код в онлайн-среду IDE и вернуться и воспроизвести проблему на вашем компьютере? –