Одна недостающая вещь, которая важна для понимания, заключается в том, что редко диагностическая ошибка пропускает оператор return. Рассмотрим эту функцию:
int f(int x)
{
if (x!=42) return x*x;
}
Пока вы не вызываете ее с аргументом 42, программа, содержащая эту функцию, отлично действует C и не вызывает никакого неопределенного поведения, несмотря на то, что она будет вызывать UB, если вы вызвали f(42)
и впоследствии попытались использовать возвращаемое значение.
Как таковой, хотя компилятор может предоставить эвристику предупреждения для отсутствующих операторов возврата, это невозможно сделать это без ложных срабатываний или ложных негативов. Это является следствием невозможности решения проблемы остановки.
В Ruby есть несколько методов для изменения регистра строк. Для преобразования в нижний регистр используйте нижний регистр
:
"hello James!".downcase #=> "hello james!"
Аналогично, верхний регистр
делает каждую букву заглавной, а заглавными буквами
делает первую букву строки заглавной, а остальные - строчными:
"hello James!".upcase #=> "HELLO JAMES!"
"hello James!".capitalize #=> "Hello james!"
"hello James!".titleize #=> "Hello James!"
Если вы хотите изменить строку на месте, вы можете добавить восклицательный знак к любому из этих методов:
string = "hello James!"
string.downcase!
string #=> "hello james!"
Дополнительные сведения см. В документации для String .
Не будет работать на каждый, но это просто сохранило меня набор времени. У меня просто была проблема с CSV, возвращающим "TRUE или "ЛОЖЬ", таким образом, я просто добавил Значение to_s.downcase == "верный", который возвратит булевскую переменную, верную, если значением будет "TRUE" и ложь, если значение является "ЛОЖЬЮ", но будет все еще работать на булеву истину и ложь.
Метод ruby downcase
возвращает строку, в которой прописные буквы заменены строчными буквами.
"string".downcase
https://ruby-doc.org/core-2.1.0 /String.html#method-i-downcase[124 impression
Вы можете узнать все методы, доступные для String, открыв irb и запустив:
"MyString".methods.sort
И список методов, доступных для строк, в частности:
"MyString".own_methods.sort
Я использую это, чтобы узнавать новое и интересное об объектах, о существовании которых я, возможно, и не подозревал.
... а в верхнем регистре:
"Awesome String".upcase
=> "AWESOME STRING"