¿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 s
fue, 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 index
que tendrá que buscar toda la cadena base. En un caso de falla, starts_with?
tomará un acceso (por cadena) y una comparación, mientras index
que caminará casi toda la longitud de la cadena base.