Я пытаюсь написать программу, которая берет строку и выводит самое длинное слово в этой строке. Теперь я знаю, что мой код выглядит довольно волосатым, но я довольно новичок в языке Ruby, поэтому, пожалуйста, просто несите меня. Я не понимаю каких-либо других объяснений, касающихся этой проблемы. Я не ищу ответа. Все, что я хочу, - это доброжелательный человек, чтобы объяснить мне, почему моя программа останавливается в строке 16 с проблемой, указанной в названии этого вопроса. Пожалуйста и спасибо!Ruby: Undefined method 'length' for nil: NilClass (NoMethodError)
# longest_word.rb
# A method that takes in a string and returns the longest word
# in the string. Assume that the string contains only
# letters and spaces. I have used the String 'split' method to
# aid me in my quest. Difficulty: easy.
def longest_word(sentence)
array = sentence.split(" ")
idx = 0
ordered_array = []
puts(array.length)
while idx <= array.length
if (array[idx].length) < (array[idx + 1].length)
short_word = array[idx]
ordered_array.push(short_word)
idx += 1
elsif array[idx].length > array[idx + 1].length
long_word = array[idx]
ordered_array.unshift(long_word)
idx += 1
else l_w = ordered_array[0]
return l_w
end
end
end
puts("\nTests for #longest_word")
puts(longest_word("hi hello goodbye"))
Пожалуйста, включите минимальный пример кода в теле сообщения. Изображения не очень помогают, поскольку мы не можем копировать их в наши собственные среды и запускать их. –
Когда вы отправляете изображение своего кода, вместо того, чтобы публиковать свой код, вы заставляете людей вводить все это, чтобы помочь вам. Вы действительно думаете, что это хорошее отношение? –
... и ссылки должны быть разбиты. Отправьте код здесь, и он будет жить вечно. Эти предложения помогут вам изменить свой вопрос и заменить ссылку на свой код. –