Hat Ruby eine some_string.starts_with("abc")
eingebaute Methode?
Hat Ruby eine some_string.starts_with("abc")
eingebaute Methode?
Antworten:
Es heißt String#start_with?
nicht String#startswith
: In Ruby enden die Namen von booleschen Methoden mit ?
und die Wörter in Methodennamen werden durch ein getrennt _
. s
Ich bin mir nicht sicher, wohin das ging, ich persönlich würde es String#starts_with?
dem tatsächlichen vorziehenString#start_with?
Ihr Fragentitel und Ihr Fragetext sind unterschiedlich. Ruby hat keine Starts mit? Methode. Rails , ein Ruby- Framework , tut dies jedoch , wie in sepp2k angegeben. Siehe seinen Kommentar zu seiner Antwort für den Link zur Dokumentation dafür.
Sie können jedoch immer einen regulären Ausdruck verwenden:
if SomeString.match(/^abc/)
# SomeString starts with abc
^
bedeutet "Anfang der Zeichenfolge" in regulären Ausdrücken
?
in Frage Titel)
Wenn dies für ein Nicht-Rails-Projekt ist, würde ich verwenden String#index
:
"foobar".index("foo") == 0 # => true
start_with?
insofern leistungsintensiver, als eine Methode einfach bestätigen kann, dass der Anfang der Zeichenfolge mit der angegebenen Zeichenfolge übereinstimmt, wodurch höchstens n Zeichen verarbeitet werden, wobei n die Länge der angegebenen Zeichenfolge ist, während index
gesucht werden muss die gesamte Basiszeichenfolge. In einem Fehlerfall starts_with?
wird ein Zugriff (pro Zeichenfolge) und ein Vergleich durchgeführt, während index
fast die gesamte Länge der Basiszeichenfolge ausgeführt wird.