¿Ruby tiene un método some_string.starts_with("abc")
integrado?¿Ruby tiene un método string.startswith ("abc") incorporado?
Respuesta
Se llama String#start_with?
, no String#startswith
: En Ruby, los nombres de los métodos booleanos-ish terminan con ?
y las palabras nombres de los métodos se separan con un _
. No está seguro de dónde fue el s
, personalmente, preferiría String#starts_with?
sobre el actual String#start_with?
Matz ha dicho que prefiere sin la s ya que se ve como segunda persona del singular o tercera persona del plural. –
String # start_with? se introdujo en ruby 1.8.7 y 1.9.0. Para versiones anteriores, es posible que desee utilizar una de las versiones de expresiones regulares o de índice mencionadas en otras respuestas. –
en Rails, puede usar String # starts_with? – Abdo
El título de su pregunta y el cuerpo de su pregunta son diferentes. Ruby no tiene un starts_with? método. Rails, que es un marco de Ruby , sin embargo, hace, como sepp2k. Vea su comentario sobre su respuesta para el enlace a la documentación para ello.
siempre se puede utilizar una expresión regular sin embargo:
if SomeString.match(/^abc/)
# SomeString starts with abc
^
significa "comienzo de cadena" en expresiones regulares
Puede utilizar String =~ Regex
. Devuelve la posición de la coincidencia de expresiones regulares completa en la cadena.
irb> ("abc" =~ %r"abc") == 0
=> true
irb> ("aabc" =~ %r"abc") == 0
=> false
Por favor use '//' en vez de '% r' siempre que sea posible. – Cyoce
Si se trata de un proyecto no-carriles, que haría uso de String#index
:
"foobar".index("foo") == 0 # => true
Sin embargo, esto requeriría más rendimiento, ya que un método 'start_with?' Puede simplemente confirmar que el comienzo de la cadena coincide con la cadena dada, por lo tanto procesando a lo sumo * n * caracteres donde * n * es la longitud de la cadena dada, mientras que 'index' tendrá que buscar toda la cadena base. En un caso de falla, 'starts_with?'tomará un acceso (por cadena) y una comparación, mientras que' index' recorrerá casi toda la longitud de la cadena base. – OldPeculier
- 1. ¿Por qué Ruby no tiene un ThreadPool incorporado?
- 2. ¿Tiene MFC incorporado un control de cuadrícula?
- 3. ¿Rails tiene un sistema de autenticación incorporado?
- 4. ¿Android tiene un visor de PDF incorporado?
- 5. ¿GCC tiene un tiempo de compilación incorporado?
- 6. ¿Por qué Python no tiene un getattr híbrido + __getitem__ incorporado?
- 7. ¿Qué aspecto tiene un método estático de Java en Ruby?
- 8. ¿.NET tiene incorporado EventArgs <T>?
- 9. ¿.NET 4 tiene un serializador/deserializador JSON incorporado?
- 10. ¿Algún método hash incorporado en C++?
- 11. Ruby: ¿Definir un método dentro de otro método tiene algún uso real?
- 12. ¿Hay un método incorporado de Java para encajonar una matriz?
- 13. Problema con LINQ to Entities and String.StartsWith
- 14. ¿Ruby tiene seleccionado el método de matriz? ¿o no?
- 15. ¿Lua no tiene algo comparable con el método de Ruby?
- 16. Ruby tiene una función incorporada ... ¿mientras?
- 17. ¿Tiene Ruby/Rails un equivalente a ++?
- 18. ¿Ruby tiene mkdir -p?
- 19. ¿Ruby tiene variables atómicas?
- 20. ABC Python: registrar vs subclases
- 21. ¿Qué significa ABC en WCF?
- 22. Ruby Detect método
- 23. ¿Cuándo exactamente un método tiene efectos secundarios?
- 24. ¿AtomicBoolean no tiene un método negate()?
- 25. Compruebe si una clase tiene un método
- 26. IEnumerable no tiene un método Count
- 27. ¿HttpWebRequest no tiene un método cercano?
- 28. ¿Ruby tiene un method_missing equivalente para variables de instancia indefinidas?
- 29. Subclase dict: ¿UserDict, dict o ABC?
- 30. ¿No se puede llamar al método incorporado en mb_internal_encoding?
pregunta relacionada: http://stackoverflow.com/questions/4130364/ruby-doesnt-have-a-string-startswithabc-built-in-method –
Por cierto, ¿estás preguntando sobre Ruby o sobre Rails? –