Apakah Ruby memiliki some_string.starts_with("abc")metode yang terintegrasi?
Apakah Ruby memiliki some_string.starts_with("abc")metode yang terintegrasi?
Jawaban:
Disebut String#start_with?, bukan String#startswith: Di Ruby, nama metode boolean-ish diakhiri dengan ?dan kata-kata dalam nama metode dipisahkan dengan a _. Tidak yakin ke mana sperginya, secara pribadi, saya lebih suka String#starts_with?daripada yang sebenarnyaString#start_with?
Judul pertanyaan dan badan pertanyaan Anda berbeda. Ruby tidak memiliki begin_with? metode. Rails , yang merupakan kerangka kerja Ruby , tidak , sebagai status sepp2k. Lihat komentarnya pada jawabannya untuk tautan ke dokumentasi untuk itu.
Anda selalu dapat menggunakan ekspresi reguler:
if SomeString.match(/^abc/)
# SomeString starts with abc
^ berarti "permulaan string" dalam ekspresi reguler
?dalam judul pertanyaan)
Jika ini untuk proyek non-Rails, saya akan menggunakan String#index:
"foobar".index("foo") == 0 # => true
start_with?metode hanya dapat mengkonfirmasi bahwa awal string cocok dengan string yang diberikan - dengan demikian memproses paling banyak n karakter di mana n adalah panjang dari string yang diberikan - sedangkan indexharus mencari seluruh string dasar. Dalam kasus kegagalan, starts_with?akan mengambil satu akses (per string) dan perbandingan, sedangkan indexakan berjalan hampir sepanjang string dasar.