Я пытаюсь создать метод определения заголовка для назначения программирования, он заглаживает определенные слова и игнорирует другие. Он всегда заглаживает первое слово. С этой целью я создал метод, который находит первое слово строки и пытается вызвать его в методе titleize. Я получаю сообщение об ошибке «warning: string literal in condition». Я попытался изменить формулировку цикла if, но это не исправление моей ошибки. Может ли кто-нибудь объяснить мне, почему мой код нарушен? Большое спасибо за Вашу помощь!Методы вызова в методах для Titleize в Ruby
def first_word(str)
array = str.split(' ')
return array[0]
end
def titleize(str)
words = str.split
words.each do |word|
if word != first_word(str)
word.capitalize!
elsif word != 'and' or 'the'
word.capitalize!
end
words.join ' '
end
end
К слову: ваш код неэффективен. Рассмотрим очень длинную строку со многими словами - расщепление, на которое она потребляет время и память. В каждом цикле цикла 'words.each' вы вызываете' first_word() ', который снова разделяет всю строку. Было бы лучше сделать 'first_word = words.first' и использовать переменную' first_word' в вашем цикле. – tessi
Ваш код неправильно заглавной буквы слова, которое не совпадает с начальным словом. – sawa
@sawa Вы правы! –