Ruby é uma linguagem de programação interpretada, dinâmica, reflexiva, orientada a objetos de programação. Desenvolvida por Yukihiro Matsumoto, a Ruby foca na simplicidade e produtividade. A sintaxe elegante permite que desenvolvedores leiam e escrevam código mais facilmente.
Neste guia, trabalharemos com strings em Ruby.
Pré-requisitos
Para realizar os passos demonstrados neste tutorial, você precisa dos seguintes componentes:
- Um sistema Ubuntu configurado corretamente. Saiba mais sobre configurar seu próprio servidor Ubuntu na CloudSigma.
- Qualquer editor de texto moderno, de preferência com realce de sintaxe, por exemplo, VS Code, Sublime Text, Atom, Brackets, Vim, etc.
O Tipo de Dados String
Na programação, uma string é um tipo de dados comum que toda linguagem de programação moderna suporta. Ela é caracterizada por uma sequência de caracteres. Toda a sequência de caracteres é tratada como um único dado. Uma string pode conter letras, dígitos e caracteres/símbolos especiais.
O Ruby, sendo uma linguagem de programação puramente orientada a objetos, trata strings como objetos. Ao contrário de muitas outras linguagens, as strings no Ruby são mutáveis. Basicamente, o valor da string pode ser alterado no próprio local.
Passo 1 – Criando e Imprimindo Strings
No Ruby, as strings são envolvidas por aspas simples ( ') ou aspas duplas ( "). A seguir estão duas strings válidas no Ruby:
|
1 2 |
'the quick brown fox' "jumps over the lazy dog" |
Para imprimir qualquer saída na tela do console, o Ruby vem com o print método:
|
1 2 |
print 'the quick brown fox' print "jumps over the lazy dog" |
Hora de colocar em prática. Crie um novo arquivo Ruby practice.rb e insira os seguintes códigos:
Execute o código:
|
1 |
ruby practice.rb |
Como esperado, o comando print imprime as strings fornecidas. Se quisermos imprimir as strings em linhas separadas, é melhor usar puts em vez disso. Atualize o código:
|
1 2 |
puts 'the quick brown fox' puts "jumps over the lazy dog" |
Em seguida, execute o código novamente:
|
1 |
ruby practice.rb |
Passo 2 – Variáveis de String
Variáveis são nomes que se referem a um local específico na memória do computador onde um valor é armazenado. Podemos armazenar o valor desejado na variável e usá-lo mais tarde.
No Ruby, para declarar uma variável de string, defina o nome da variável e atribua um valor de string:
|
1 |
<variable_name> = <string> |
Escreva o seguinte código em practice.rb:
|
1 2 3 4 |
first_half = 'the quick brown fox' second_half = "jumps over the lazy dog" puts first_half puts second_half |
Execute o código:
|
1 |
ruby practice.rb |
Aqui:
- Definimos duas variáveis first_half e second_half, cada uma com um valor de string atribuído.
- O método puts imprime o valor das variáveis.
Passo 3 – Concatenação de Strings
Ao concatenar, podemos pegar várias strings e juntá-las para criar uma nova string. A concatenação de strings é denotada pelo operador de concatenação ( +). Observe que este símbolo também é o operador de adição ao trabalhar com operações aritméticas.
Vamos tentar realizar a concatenação de strings nas strings que declaramos até agora:
|
1 |
puts "the quick brown fox" + "jumps over the lazy dog" |
Execute o código:
|
1 |
ruby practice.rb |
Como a saída mostra, a concatenação não introduz nenhum caractere adicional entre as strings. É por isso que fox e jumps estão agrupados. Podemos corrigir isso introduzindo um espaço em branco após fox:
|
1 |
puts "the quick brown fox " + "jumps over the lazy dog" |
Execute o código:
|
1 |
ruby practice.rb |
Agora a saída parece melhor.
A concatenação de strings também funciona com variáveis. Dê uma olhada no seguinte exemplo:
|
1 2 |
first_half = "a rápida raposa marrom " puts first_half + "pula sobre o cão preguiçoso" |
Execute o código:
|
1 |
ruby practice.rb |
O próximo exemplo demonstra uma longa cadeia de concatenação:
|
1 2 3 |
username = "cloudsigma" fav_color = "azul" puts "olá, " + username + "! a sua cor favorita é " + fav_color + "." |
Execute o código:
|
1 |
ruby practice.rb |
Até agora, lidamos apenas com variáveis do tipo string. E se houvesse tipos de variáveis diferentes? O programa a seguir testa esse cenário:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id |
Ao tentar executar este programa, o Ruby lançará uma mensagem de erro:
|
1 |
ruby practice.rb |
No entanto, podemos converter o número inteiro em uma string para evitar esse problema:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id.to_s |
Aqui:
-
O método to_s converte o valor da variável em uma string.
A conversão de números em strings é uma ocorrência comum ao lidar com elementos como códigos postais, moedas, números de telefone e outros dados numéricos.
Passo 4 – Interpolação de String
Embora a concatenação de strings seja um recurso poderoso, ela pode se tornar complicada muito facilmente. Em muitas situações, você provavelmente sentirá falta de um operador de concatenação ( +), o que causará uma grande dor de cabeça. Além disso, ao lidar com diferentes tipos de dados, eles devem ser convertidos em uma string primeiro. Felizmente, o Ruby oferece outras maneiras de injetar valores de variáveis em uma string usando o recurso interpolação de string.
Aqui está como se parece. Por exemplo, em vez de usar:
|
1 |
"olá, " + username + "!" |
Nós usaremos:
|
1 |
"olá, #{username}!" |
Embora a sintaxe possa parecer um pouco estranha, ela simplifica drasticamente o código. Não há necessidade de chamar manualmente o método to_s para converter o valor da variável em string.
Vamos usar essa nova técnica para atualizar nosso código anterior:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts "olá, #{username}! o seu ID de usuário é #{user_id}" |
Execute o código:
|
1 |
ruby practice.rb |
Passo 5 – Literais de String e Valores de String
Observe que as strings declaradas nos códigos são sempre cercadas por aspas. No entanto, ao imprimir a saída na tela do console, não há símbolos de aspas. Claramente há uma distinção entre eles.
- Literal de string: É a string escrita no código-fonte (incluindo as aspas).
- Valor de string: É o valor que é impresso na saída (sem as aspas).
Por exemplo, o seguinte é um literal de string:
|
1 |
"olá mundo" |
O valor de string dele seria olá mundo.
Passo 6 – Escapando Aspas e Apóstrofos
Como demonstramos, aspas e apóstrofos são usados para denotar strings no código-fonte. Isso representa um problema: você não pode tê-los diretamente na string. Caso contrário, causará problemas. O código a seguir demonstra isso:
|
1 |
puts 'it's what it is' |
Existem táticas diferentes para contornar esse problema.
-
Usando Sintaxe de String Alternativa
Esta é a maneira mais simples de contornar o problema. Se sua string precisar de aspas simples, use aspas duplas no literal de string (e vice-versa).
Vamos corrigir o exemplo anterior:
|
1 |
puts "it's what it is" |
Another example would be:
|
1 |
puts 'ele disse, "olá mundo"' |
No entanto, isso não vai funcionar em todas as situações. Por exemplo:
|
1 |
puts "Clousdigma says, "I'm a happy boi!"" |
-
Usando Caracteres de Escape
O caractere de barra invertida ( \) é frequentemente chamado de caractere de escape. Ele impede que o Ruby interprete o próximo caractere literalmente. Vamos corrigir o exemplo anterior. Use a barra invertida para evitar que o Ruby interprete as aspas duplas internas como literais:
|
1 |
puts "Cloudsigma diz, \"Eu sou um garoto feliz!\"" |
-
Usando Sintaxe Alternativa
Até agora, só trabalhamos com aspas simples e duplas para denotar a string literal. No entanto, os exemplos anteriores são demonstrações simples de como isso pode sair do controle muito rapidamente. Para resolver esse problema, podemos abandonar completamente as aspas e usar um símbolo totalmente diferente para denotar o início e o fim de uma string.
Dê uma olhada no seguinte exemplo:
|
1 |
%$a rápida marrom raposa disse, "eu pulei sobre o cachorro preguiçoso"$ |
Aqui:
-
- O símbolo % define o próximo caractere ( $, neste caso) como o delimitador da string.
- A string literal aqui é $a rápida marrom raposa disse, "eu pulei sobre o cachorro preguiçoso"$.
Vamos colocar isso em ação:
|
1 |
puts %$a rápida marrom raposa disse, "eu pulei sobre o cachorro preguiçoso"$ |
Aqui, a string é basicamente tratada como o seguinte:
|
1 |
"a rápida raposa marrom disse, \"eu pulei sobre o cachorro preguiçoso\"" |
No entanto, isso reintroduz o problema de escapar o delimitador se ele for usado na string. Uma maneira de evitar isso é usar símbolos que geralmente não aparecem em strings. Tais símbolos podem incluir chaves, colchetes, etc.:
|
1 |
puts %{"olá, mundo!", ele disse} |
Também funciona perfeitamente com interpolações de string:
|
1 2 3 |
username = "cloudsigma" user_id = 5 puts %{olá, #{username}.#{user_id}!} |
Também é comum usar %Q{} e %q{} para definir strings em programas Ruby. Aqui, %Q{} age como aspas duplas e %q{} age como aspas simples.
Passo 7 – Novas Linhas e Strings Longas
Ao trabalhar com strings, haverá situações em que você desejará introduzir uma nova linha ou retorno de carro na string. Podemos fazer isso introduzindo os caracteres de escape \n (nova linha) e \r (retorno de carro).
Dê uma olhada no seguinte exemplo:
|
1 2 |
hello_world = "a rápida\nraposa marrom\npula sobre\no cachorro preguiçoso" puts hello_world |
A string literal parece confusa, certo? Vamos reorganizá-la para melhor legibilidade:
|
1 2 3 4 5 6 7 |
hello_world = "a rápida\n" + "raposa marrom\n" + "pula sobre\n" + "o cachorro preguiçoso" puts hello_world |
Em vez de declarar manualmente os caracteres de nova linha, também podemos usar a seguinte estrutura:
|
1 2 3 4 5 6 |
hello_world = "a rápida raposa marrom pula sobre o cachorro preguiçoso" puts hello_world |
Neste método, a string preserva todos os espaços em branco. No entanto, isso estraga a saída. Remova os espaços em branco extras para corrigir isso:
|
1 2 3 4 5 |
hello_world = "a rápida raposa marrom pula sobre o cachorro preguiçoso" |
Embora o problema do espaço em branco tenha sido corrigido, isso reduz a legibilidade do código. Podemos corrigir esse problema implementando um heredoc, um termo para literais de string multilinha. O código atualizado ficaria assim:
|
1 2 3 4 5 6 7 8 |
hello_world = <<-END a rápida raposa marrom pula sobre o cachorro preguiçoso END puts hello_world |
A partir do Ruby v2.3 e superior, há outro recurso disponível, chamado squiggly heredoc . Ela remove o espaço em branco inicial nas strings. Para expressar um squiggly heredoc, substitua o hífen ( -) por um til ( ~):
|
1 2 3 4 5 6 7 8 |
hello_world = <<~END a rápida marrom raposa pula sobre o preguiçoso cão END puts hello_world |
Passo 8 – Replicando Strings
Em algumas situações, pode ser necessário repetir uma string várias vezes. O Ruby permite replicar strings de várias maneiras.
Uma dessas técnicas é usar o * operador. Geralmente, é usado como o operador de multiplicação ao lidar com números. Ao lidar com strings, no entanto, ele se torna o operador de replicação de string, repetindo a string única quantas vezes for necessário. O número de repetições deve ser um número inteiro.
No exemplo a seguir, o texto Boris será repetido 5 vezes:
|
1 |
print "Boris" * 5 + "\n" |
Usando esse recurso, podemos produzir algumas artes ASCII legais. Confira o exemplo a seguir:
|
1 2 3 |
puts "=" * 15 puts "| olá mundo |" puts "=" * 15 |
Considerações Finais
Strings, na programação, são essenciais. Este guia demonstra como trabalhar com strings no Ruby. Aprendemos a criar strings e a realizar várias operações como concatenação, tratamento de quebras de linha, aspas, etc. Usando a interpolação de strings, também aprendemos a integrar melhor os valores das variáveis em strings. Usando o operador de replicação de string, também podemos repetir uma única string várias vezes.
Embora o Ruby, por si só, seja uma excelente linguagem de programação, ele é frequentemente combinado com o framework Rails. Ruby on Rails é um framework de aplicativo web de código aberto. Saiba mais sobre como instalar o Ruby on Rails no Ubuntu. No entanto, o Ruby também pode funcionar com outros aplicativos, como MySQL e PostgreSQL.
Feliz Computação!












































Comentários
Nenhum comentário ainda. Seja o primeiro.