Чи у Ruby є some_string.starts_with("abc")
вбудований метод?
Чи у Ruby є some_string.starts_with("abc")
вбудований метод?
Відповіді:
Це називається String#start_with?
, не String#startswith
: У Ruby назви методів boolean-ish закінчуються, ?
а слова в назвах методів відокремлюються символом _
. Не впевнений, куди 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
буде проходити майже по всій довжині базової рядки.