¿Ruby tiene un some_string.starts_with("abc")método incorporado?
¿Ruby tiene un some_string.starts_with("abc")método incorporado?
Respuestas:
Se llama String#start_with?, no String#startswith: en Ruby, los nombres de los métodos booleanos terminan con ?y las palabras en los nombres de los métodos se separan con un _. No estoy seguro de dónde sfue, personalmente, preferiría String#starts_with?a lo realString#start_with?
El título de su pregunta y su cuerpo de preguntas son diferentes. Ruby no tiene un start_with? método. Rails , que es un marco de Ruby , sin embargo, lo hace , como sepp2k afirma. Vea su comentario sobre su respuesta para el enlace a la documentación correspondiente.
Sin embargo, siempre puedes usar una expresión regular:
if SomeString.match(/^abc/)
# SomeString starts with abc
^ significa "inicio de cadena" en expresiones regulares
?en el título de la pregunta)
Si esto es para un proyecto que no es de Rails, usaría String#index:
"foobar".index("foo") == 0 # => true
start_with?método puede simplemente confirmar que el comienzo de la cadena coincide con la cadena dada, procesando así a lo sumo n caracteres donde n es la longitud de la cadena dada, mientras indexque tendrá que buscar toda la cadena base. En un caso de falla, starts_with?tomará un acceso (por cadena) y una comparación, mientras indexque caminará casi toda la longitud de la cadena base.