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 _. sIch 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 indexgesucht werden muss die gesamte Basiszeichenfolge. In einem Fehlerfall starts_with?wird ein Zugriff (pro Zeichenfolge) und ein Vergleich durchgeführt, während indexfast die gesamte Länge der Basiszeichenfolge ausgeführt wird.