Ruby è un linguaggio di programmazione interpretato, dinamico, riflessivo, orientato agli oggetti. Sviluppato da Yukihiro Matsumoto, Ruby si concentra sulla semplicità e sulla produttività. La sintassi elegante consente agli sviluppatori di leggere e scrivere codice più facilmente.
In questa guida, lavoreremo con le stringhe in Ruby.
Prerequisiti
Per eseguire i passaggi illustrati in questo tutorial, sono necessari i seguenti componenti:
- Un sistema Ubuntu configurato correttamente. Scopri di più su come configurare il tuo server Ubuntu su CloudSigma.
- Qualsiasi editor di testo moderno, preferibilmente con evidenziazione della sintassi, ad esempio, VS Code, Sublime Text, Atom, Brackets, Vim, ecc.
Il tipo di dati String
Nella programmazione, una stringa è un tipo di dati comune supportato da ogni linguaggio di programmazione moderno. È caratterizzata da una sequenza di caratteri. L'intera sequenza di caratteri viene trattata come un singolo dato. Una stringa può contenere lettere dell'alfabeto, cifre e caratteri/simboli speciali.
Ruby, essendo un linguaggio di programmazione puramente orientato agli oggetti, tratta le stringhe come oggetti. A differenza di molti altri linguaggi, las stringhe in Ruby sono mutabili. Sostanzialmente, il valore della stringa può essere modificato in loco.
Passo 1 – Creazione e stampa di stringhe
In Ruby, le stringhe sono racchiuse tra virgolette singole ( ') o virgolette doppie ( "). Di seguito sono riportate due stringhe valide in Ruby:
|
1 2 |
'the quick brown fox' "jumps over the lazy dog" |
Per stampare qualsiasi output sulla schermata della console, Ruby include il metodo print:
|
1 2 |
print 'the quick brown fox' print "jumps over the lazy dog" |
È ora di metterlo in pratica. Crea un nuovo file Ruby practice.rb e inserisci i seguenti codici:
Esegui il codice:
|
1 |
ruby practice.rb |
Come previsto, il comando print stampa le stringhe fornite. Se vogliamo stampare le stringhe su righe separate, è meglio usare invece puts. Aggiorna il codice:
|
1 2 |
puts 'the quick brown fox' puts "jumps over the lazy dog" |
Successivamente, esegui nuovamente il codice:
|
1 |
ruby practice.rb |
Passo 2 – Variabili stringa
Le variabili sono nomi che si riferiscono a una posizione specifica nella memoria del computer in cui è memorizzato un valore. Possiamo memorizzare il valore desiderato nella variabile e usarlo in seguito.
In Ruby, per dichiarare una variabile stringa, definisci il nome della variabile e assegna un valore stringa:
|
1 |
<variable_name> = <string> |
Scrivi il seguente codice in 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 |
Esegui il codice:
|
1 |
ruby practice.rb |
Qui:
- Abbiamo definito due variabili first_half e second_half, a ciascuna delle quali è assegnato un valore stringa.
- Il metodo puts stampa il valore delle variabili.
Passo 3 – Concatenazione di stringhe
Concatenando, possiamo prendere più stringhe e unirle insieme per creare una nuova stringa. La concatenazione di stringhe è indicata dall'operatore di concatenazione ( +). Nota che questo simbolo è anche l'operatore di addizione quando si lavora con operazioni aritmetiche.
Proviamo a eseguire la concatenazione di stringhe sulle stringhe che abbiamo dichiarato finora:
|
1 |
puts "the quick brown fox" + "jumps over the lazy dog" |
Esegui il codice:
|
1 |
ruby practice.rb |
Come mostra l'output, la concatenazione non introduce alcun carattere aggiuntivo tra le stringhe. Ecco perché fox e jumps sono uniti insieme. Possiamo risolvere questo problema introducendo uno spazio vuoto dopo fox:
|
1 |
puts "the quick brown fox " + "jumps over the lazy dog" |
Esegui il codice:
|
1 |
ruby practice.rb |
Ora l'output ha un aspetto migliore.
La concatenazione di stringhe funziona anche con le variabili. Dai un'occhiata al seguente esempio:
|
1 2 |
first_half = "the quick brown fox " puts first_half + "jumps over the lazy dog" |
Esegui il codice:
|
1 |
ruby practice.rb |
Il prossimo esempio mostra una lunga catena di concatenazione:
|
1 2 3 |
username = "cloudsigma" fav_color = "blu" puts "ciao, " + username + "! il tuo colore preferito è " + fav_color + "." |
Esegui il codice:
|
1 |
ruby practice.rb |
Finora abbiamo gestito solo variabili stringa. Cosa succederebbe se ci fossero diversi tipi di variabili? Il seguente programma testa questo scenario:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id |
Quando si tenta di eseguire questo programma, Ruby restituirà un messaggio di errore:
|
1 |
ruby practice.rb |
Tuttavia, possiamo convertire l'intero in una stringa per evitare questo problema:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id.to_s |
Qui:
-
Il metodo to_s converte il valore della variabile in una stringa.
Convertire i numeri in stringhe è un'operazione comune quando si ha a che fare con elementi come codici postali, valute, numeri di telefono e altri dati numerici.
Passo 4 – Interpolazione di stringhe
Sebbene la concatenazione di stringhe sia una funzionalità potente, può diventare complicata molto facilmente. In molte situazioni, probabilmente ti accorgerai di aver dimenticato un operatore di concatenazione ( +), causando un bel mal di testa. Inoltre, quando si ha a che fare con diversi tipi di dati, questi devono prima essere convertiti in una stringa. Fortunatamente, Ruby offre altri modi per inserire i valori delle variabili in una stringa utilizzando la funzionalità interpolazione di stringhe.
Ecco come si presenta. Ad esempio, invece di usare:
|
1 |
"ciao, " + username + "!" |
Useremo:
|
1 |
"ciao, #{username}!" |
Anche se la sintassi può sembrare un po' strana, semplifica notevolmente il codice. Non c'è bisogno di chiamare manualmente il metodo to_s per convertire il valore della variabile in stringa.
Usiamo questa nuova tecnica per aggiornare il nostro codice precedente:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts "ciao, #{username}! il tuo ID utente è #{user_id}" |
Esegui il codice:
|
1 |
ruby practice.rb |
Passo 5 – Letterali stringa e valori stringa
Noterai che le stringhe dichiarate nel codice sono sempre racchiuse tra virgolette. Tuttavia, quando si stampa l'output sullo schermo della console, non ci sono virgolette. C'è chiaramente una distinzione tra le due cose.
- Letterale stringa: è la stringa scritta nel codice sorgente (incluse le virgolette).
- Valore stringa: è il valore che viene stampato nell'output (senza le virgolette).
Ad esempio, il seguente è un letterale stringa:
|
1 |
"ciao mondo" |
Il suo valore stringa sarebbe ciao mondo.
Passo 6 – Escape di virgolette e apostrofi
Come abbiamo dimostrato, le virgolette e gli apostrofi vengono utilizzati per indicare le stringhe nel codice sorgente. Questo pone un problema: non puoi averli direttamente nella stringa. Altrimenti, causerà problemi. Il seguente codice lo dimostra:
|
1 |
puts 'it's what it is' |
Ci sono diverse tattiche per aggirare questo problema.
-
Utilizzo della sintassi alternativa per le stringhe
Questo è il modo più semplice per aggirare il problema. Se la tua stringa ha bisogno di virgolette singole, usa le virgolette doppie nel letterale stringa (e viceversa).
Sistemiamo l'esempio precedente:
|
1 |
puts "it's what it is" |
Un altro esempio potrebbe essere:
|
1 |
puts 'ha detto, "ciao mondo"' |
Tuttavia, non funzionerà in ogni situazione. Ad esempio:
|
1 |
puts "Clousdigma says, "I'm a happy boi!"" |
-
Utilizzo dei caratteri di escape
Il carattere backslash ( \) viene spesso definito carattere di escape. Impedisce a Ruby di interpretare letteralmente il carattere successivo. Sistemiamo l'esempio precedente. Usa il backslash per impedire a Ruby di interpretare le virgolette doppie interne come letterali:
|
1 |
puts "Cloudsigma dice, \"sono un ragazzo felice!\"" |
-
Uso della sintassi alternativa
Finora abbiamo lavorato solo con virgolette singole e doppie per indicare la stringa letterale. Tuttavia, gli esempi precedenti sono semplici dimostrazioni di come la situazione possa sfuggire di mano molto rapidamente. Per risolvere questo problema, possiamo abbandonare del tutto le virgolette e utilizzare un simbolo completamente diverso per indicare l'inizio e la fine di una stringa.
Dai un'occhiata al seguente esempio:
|
1 |
%$la volpe marrone veloce disse, "ho saltato sopra il cane pigro"$ |
Qui:
-
- Il simbolo % definisce il carattere successivo ( $, in questo caso) come delimitatore della stringa.
- La stringa letterale qui è $la volpe marrone veloce disse, "ho saltato sopra il cane pigro"$.
Mettiamolo in azione:
|
1 |
puts %$la volpe marrone veloce disse, "ho saltato sopra il cane pigro"$ |
Qui, la stringa viene fondamentalmente trattata come segue:
|
1 |
"la volpe marrone veloce disse, \"ho saltato sopra il cane pigro\"" |
Tuttavia, introduce nuovamente il problema dell'escape del delimitatore se questo viene utilizzato nella stringa. Un modo per evitarlo è utilizzare simboli che generalmente non compaiono nelle stringhe. Tali simboli potrebbero includere parentesi graffe, parentesi quadre, ecc.:
|
1 |
puts %{"ciao, mondo!", disse lui} |
Funziona perfettamente anche con le interpolazioni di stringhe:
|
1 2 3 |
username = "cloudsigma" user_id = 5 puts %{ciao, #{username}.#{user_id}!} |
È anche comune usare %Q{} e %q{} per definire le stringhe nei programmi Ruby. Qui, %Q{} si comporta come le doppie virgolette e %q{} si comporta come le virgolette singole.
Passo 7 – Nuove righe e stringhe lunghe
Quando si lavora con le stringhe, ci saranno situazioni in cui si desidera introdurre una nuova riga o un ritorno a capo nella stringa. Possiamo farlo introducendo i caratteri di escape \n (nuova riga) e \r (ritorno a capo).
Dai un'occhiata al seguente esempio:
|
1 2 |
hello_world = "la volpe\nmarrone veloce\nsalta sopra\nil cane pigro" puts hello_world |
La stringa letterale sembra confusa, vero? Riorganizziamola per una migliore leggibilità:
|
1 2 3 4 5 6 7 |
hello_world = "la volpe\n" + "marrone veloce\n" + "salta sopra\n" + "il cane pigro" puts hello_world |
Invece di dichiarare manualmente i caratteri di nuova riga, possiamo anche utilizzare la seguente struttura:
|
1 2 3 4 5 6 |
hello_world = "la volpe marrone veloce salta sopra il cane pigro" puts hello_world |
In questo metodo, la stringa conserva tutti gli spazi vuoti. Tuttavia, questo rovina l'output. Rimuovi gli spazi vuoti extra per risolvere il problema:
|
1 2 3 4 5 |
hello_world = "la volpe marrone veloce salta sopra il cane pigro" |
Sebbene il problema dello spazio vuoto sia stato risolto, ciò riduce la leggibilità del codice. We can fix this issue by implementing a heredoc, un termine per stringhe letterali multilinea. Il codice aggiornato si presenterebbe così:
|
1 2 3 4 5 6 7 8 |
hello_world = <<-END la volpe marrone veloce salta sopra il cane pigro END puts hello_world |
A partire da Ruby v2.3 e versioni successive, è disponibile un'altra funzionalità, chiamata sintassi squiggly heredoc. Rimuove lo spazio vuoto iniziale nelle stringhe. Per esprimere un squiggly heredoc, sostituisci il trattino ( -) con una tilde ( ~):
|
1 2 3 4 5 6 7 8 |
hello_world = <<~END la veloce marrone volpe salta sopra il pigro cane END puts hello_world |
Passaggio 8 – Replicare le stringhe
In alcune situazioni, potrebbe essere necessario ripetere una stringa più volte. Ruby consente di replicare le stringhe in vari modi.
Una di queste tecniche consiste nell'usare l' * operatore. In genere, viene utilizzato come operatore di moltiplicazione quando si ha a che fare con i numeri. Quando si ha a che fare con le stringhe, tuttavia, diventa l'operatore di replicazione delle stringhe, ripetendo la singola stringa tutte le volte necessarie. Il numero di ripetizioni deve essere un numero intero.
Nel seguente esempio, il testo Boris verrà ripetuto 5 volte:
|
1 |
print "Boris" * 5 + "\n" |
Utilizzando questa funzionalità, possiamo produrre della fantastica ASCII art. Dai un'occhiata al seguente esempio:
|
1 2 3 |
puts "=" * 15 puts "| ciao mondo |" puts "=" * 15 |
Considerazioni finali
Le stringhe, nella programmazione, sono fondamentali. Questa guida mostra come lavorare con le stringhe in Ruby. Abbiamo imparato a creare stringhe e a eseguire varie operazioni come la concatenazione, la gestione delle nuove righe, delle virgolette, ecc. Utilizzando l'interpolazione delle stringhe, abbiamo anche imparato a integrare meglio i valori delle variabili nelle stringhe. Utilizzando l'operatore di replicazione delle stringhe, possiamo anche ripetere una singola stringa più volte.
Sebbene Ruby, di per sé, sia un eccellente linguaggio di programmazione, viene spesso combinato con il framework Rails. Ruby on Rails è un framework per applicazioni web open-source. Scopri di più su come installare Ruby on Rails su Ubuntu. Tuttavia, Ruby può funzionare anche con altre applicazioni, come MySQL e PostgreSQL.
Buona programmazione!












































Commenti
Ancora nessun commento. Scrivi il primo.