Я изучаю методы в Ruby и думаю, что лучший способ узнать их - создать уже существующий метод. Тем не менее, есть две проблемы, которые я бегу, чтобы:Создание модифицированного метода заглавной буквы в Ruby с нуля
- Я не знаю, что капитализировать метод выглядит
- Мое решение (это не более чем оригинальный метод делает) кажется, что он может быть переработан во что-то более элегантное.
Это то, что я придумал:
# method that capitalizes a word
def new_capitalize(string)
if string[0].downcase == "m" && string[1].downcase == "c"
puts "#{string[0].upcase}#{string[1].downcase}#{string[2].upcase}#{string[3..-1].downcase}"
else
puts "#{string[0].upcase}#{string[1..-1].downcase}"
end
end
name1 = "ryan"
name2 = "jane"
new_capitalize(name1) # prints "Ryan"
new_capitalize(name2) # prints "Jane"
str = "mCnealy"
puts str.capitalize
# prints "Mcnealy"
new_capitalize(str)
# prints "McNealy"
Кажется, если первая часть моего заявления, если можно было бы сделать гораздо более эффективной. Он не должен быть даже близко к моему решению, если он печатает второй капитал, если имя начинается с «mc»
Кроме того, если кто-то может указать мне, где можно найти код встроенного метода capize, который было бы здорово!
Спасибо заранее!
Ваш вопрос плохо сформулированное. Ваше первое предложение противоречит названию и тому, что вы пытаетесь сделать с вашим кодом. Важно, чтобы ваше утверждение вопроса было полным и недвусмысленным. Один или несколько примеров были бы полезны. Когда вы приводите примеры, покажите свой ожидаемый или желаемый результат и назначьте переменную для каждого входного объекта (например, 'str =" mCnealy "), чтобы читатели могли ссылаться на эти переменные в ответах и комментариях, не определяя их. Отправьте свой код после того, как вы четко изложите свой вопрос. –