Чи у 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буде проходити майже по всій довжині базової рядки.