Есть ли в 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
будет проходить почти полная длина базовой строки.