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 sallé, 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 indexqu'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 indexparcourra presque toute la longueur de la chaîne de base.