O Ruby tem um some_string.starts_with("abc")método embutido?
O Ruby tem um some_string.starts_with("abc")método embutido?
Respostas:
É chamado String#start_with?, não String#startswith: no Ruby, os nomes dos métodos boolean-ish terminam com ?e as palavras nos nomes dos métodos são separadas por um _. Não sei para onde sfoi, pessoalmente, eu preferiria String#starts_with?o realString#start_with?
O título da pergunta e o corpo da pergunta são diferentes. Ruby não tem um start_with? método. O Rails , que é uma estrutura Ruby , no entanto, faz , como afirma o sepp2k. Veja o comentário dele na resposta para o link da documentação.
Você sempre pode usar uma expressão regular:
if SomeString.match(/^abc/)
# SomeString starts with abc
^ significa "início da string" em expressões regulares
?no título da pergunta)
Se isso for para um projeto não-Rails, eu usaria String#index:
"foobar".index("foo") == 0 # => true
start_with?método pode simplesmente confirmar que o início da string corresponde à determinada string - processando assim no máximo n caracteres onde n é o comprimento da string especificada - ao passo indexque terá que procurar toda a cadeia de base. Em um caso de falha, starts_with?terá um acesso (por sequência) e comparação, enquanto indexpercorrerá quase todo o comprimento da sequência base.