Есть ли в Ruby some_string.starts_with("abc")метод, который встроен?
Есть ли в Ruby some_string.starts_with("abc")метод, который встроен?
Ответы:
Это называется String#start_with?, а не String#startswith: в Ruby имена методов логического вывода заканчиваются на, ?а слова в именах методов разделяются знаком _. Не уверен, куда sпошел, лично я бы предпочел String#starts_with?реальныйString#start_with?
Ваше название вопроса и ваше тело вопроса отличаются. Рубин не имеет стартов с? метод. Однако Rails , который является фреймворком Ruby , делает , как утверждает sepp2k. Смотрите его комментарий к его ответу для ссылки на документацию для него.
Вы всегда можете использовать регулярное выражение, хотя:
if SomeString.match(/^abc/)
# SomeString starts with abc
^ означает «начало строки» в регулярных выражениях
?в названии вопроса)
Если это для не-Rails проекта, я бы использовал String#index:
"foobar".index("foo") == 0 # => true
start_with?метод может просто подтвердить, что начало строки соответствует заданной строке - таким образом обрабатывать не более n символов, где n - длина данной строки - тогда как indexпридется искать вся базовая строка. В случае сбоя starts_with?потребуется один доступ (на строку) и сравнение, тогда как indexбудет проходить почти полная длина базовой строки.