Ruby a-t-il une some_string.starts_with("abc")
méthode intégrée?
Ruby a-t-il une some_string.starts_with("abc")
méthode intégrée?
Réponses:
Cela s'appelle String#start_with?
, pas String#startswith
: dans Ruby, les noms des méthodes booléennes se terminent par ?
et les mots dans les noms de méthode sont séparés par un _
. Je ne sais pas où est s
allé, personnellement, je préfère String#starts_with?
sur le réelString#start_with?
Le titre de votre question et le corps de votre question sont différents. Ruby n'a pas de start_with? méthode. Rails , qui est un Ruby cadre cependant, fait , comme les États sepp2k. Voir son commentaire sur sa réponse pour le lien vers la documentation correspondante.
Vous pouvez toujours utiliser une expression régulière:
if SomeString.match(/^abc/)
# SomeString starts with abc
^
signifie "début de chaîne" dans les expressions régulières
?
du titre de la question)
Si c'est pour un projet non-Rails, j'utiliserais String#index
:
"foobar".index("foo") == 0 # => true
start_with?
méthode peut simplement confirmer que le début de la chaîne correspond à la chaîne donnée - traitant ainsi au plus n caractères où n est la longueur de la chaîne donnée - alors index
qu'elle devra rechercher la chaîne de base entière. Dans un cas d'échec, starts_with?
prendra un accès (par chaîne) et une comparaison, tandis que index
parcourra presque toute la longueur de la chaîne de base.