Ruby có một some_string.starts_with("abc")
phương thức được xây dựng trong không?
Ruby có một some_string.starts_with("abc")
phương thức được xây dựng trong không?
Câu trả lời:
Nó được gọi String#start_with?
, không phải String#startswith
: Trong Ruby, tên của các phương thức boolean-ish kết thúc bằng ?
và các từ trong tên phương thức được phân tách bằng một _
. Không chắc chắn nơi s
đã đi, cá nhân, tôi thích String#starts_with?
hơn thực tếString#start_with?
Tiêu đề câu hỏi của bạn và cơ thể câu hỏi của bạn là khác nhau. Ruby không có start_with? phương pháp. Ray , đó là một Ruby khuôn khổ , tuy nhiên, không như các quốc gia sepp2k. Xem bình luận của anh ấy về câu trả lời của anh ấy cho liên kết đến tài liệu cho nó.
Bạn luôn có thể sử dụng biểu thức chính quy:
if SomeString.match(/^abc/)
# SomeString starts with abc
^
có nghĩa là "bắt đầu chuỗi" trong các biểu thức thông thường
?
trong tiêu đề câu hỏi)
Nếu đây là một dự án không phải Rails, tôi sẽ sử dụng String#index
:
"foobar".index("foo") == 0 # => true
start_with?
phương thức có thể đơn giản xác nhận rằng phần đầu của chuỗi khớp với chuỗi đã cho, do đó xử lý tối đa n ký tự trong đó n là độ dài của chuỗi đã cho trong khi index
sẽ phải tìm kiếm toàn bộ chuỗi cơ sở. Trong trường hợp thất bại, starts_with?
sẽ lấy một quyền truy cập (trên mỗi chuỗi) và so sánh, trong khi đó index
sẽ đi gần như toàn bộ chiều dài của chuỗi cơ sở.