Рубиновая логика программы редактирования?

Хорошо, я делаю трек Codeacademy ruby, и у меня нет проблем с этим. Я могу заставить это работать сейчас, но я не понимаю, почему это работает. Инструкция к упражнению:

Давайте начнем с простого: напишем цикл.each, который просматривает слова и просто печатает каждое найденное слово.

Я разбил проблему на шаги, чтобы попытаться понять, почему это работает, но я очень запутался. Мой код проблемы:

puts "Text to search through: " #ask user for input
text = gets.chomp
#store the user's input into the variable text
puts "Text to be reducted: " 
#ask the user for input
redact = gets.chomp 
#store the user's input into the variable redact

words = text.split(" ") 
=begin
split the user's input into the variable words
store that input into the variable words
=end
words.each do |word| 
=begin
creates a placeholder for the user's input
then attach an expression to the input stored in
the variable words one at a time. The variable
words holds the value of the variable text
=end
    if word != redact 
=begin
if word (which now holds the value of words that's
stored in the variable text, and which is the user's input)
is not equal to the value of the variable redact do something
=end
        word = word + " "
=begin
increment the value of word by an empty space
why do I need to increment the value of word by an empty space? 
=end
        print "#{word}" #print the value of the variable word
else
    print "REDACTED" #otherwise, print the value redacted
end
end

Программа работает, если я использую строку, разделенную пробелом, и только если я изменяю

word = word + ""

вместо

word = word + " "

Я был бы очень признателен, если бы кто-то сломал это для меня, шаг за шагом.

Я создал это видео для более наглядного объяснения. вот ссылка: видео редакции ruby

благодарю вас.

1 ответ

Проблема в вашем видео состоит в том, что "nelson" не совпадает с "nelson ", и оценка Codeacademy не видит совпадений, когда вы добавляете пробел к слову перед его печатью.

Я читаю эту проблему в июле 2019 года..

Так что любой, кто читает эту проблему и запутывается в приведенной ниже части, которую задает пользователь:

word = word + "" = begin увеличивает значение слова на пустой пробел, зачем мне увеличивать значение слова на пустой пробел?

Таким образом, ответ таков: знак + предназначен не для увеличения значения, а для добавления пробела, а знак + используется в качестве конкатенации строк. Таким образом, он был размещен таким образом, чтобы любые слова, которые искали и отображали, имели пространство между ними.

Другие вопросы по тегам