Formattazione delle Stringhe
Ora che abbiamo appreso tutti i tipi di dati di base, possiamo esplorare la formattazione delle stringhe. In programmazione, la formattazione delle stringhe consiste nell'inserire valori di variabili all'interno delle stringhe.
Nota
L'istruzione
importviene utilizzata per importare package in un'applicazione Go. Un package è una raccolta di file sorgente Go correlati che collaborano per offrire un insieme di funzionalità o servizi. Il packagefmtfornisce funzioni che permettono di formattare le stringhe.
Una delle funzioni del package fmt che abbiamo utilizzato è la funzione Println. La funzione Println visualizza il testo di output su una nuova riga ogni volta. Tuttavia, esiste una funzione chiamata Print che visualizza l'output senza andare a capo:
index.go
12345678package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }
In generale, è possibile utilizzare queste funzioni per inserire valori di variabili all'interno di dati stringa utilizzando il seguente metodo:
index.go
123456789package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }
Tuttavia, questo metodo non è molto efficiente perché è necessario suddividere la stringa in molti segmenti per inserire le variabili nei punti rilevanti, il che può diventare complicato in casi più complessi. La funzione Printf risolve questo problema e semplifica il processo di visualizzazione dell'output formattato.
La funzione Printf accetta una stringa di formato come primo argomento, seguita dai valori (o variabili) da inserire nella stringa di formato. Una stringa di formato contiene segnaposto (specificatori di formato) che definiscono il formato desiderato dell'output.
Di seguito è riportato un esempio:
index.go
12345678910package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }
Come illustrato nell'esempio, i specificatori di formato sono simboli che fungono da segnaposto per tipi di dati specifici all'interno di una stringa. Esiste uno specificatore di formato distinto per ciascun tipo di dato. La tabella seguente fornisce un elenco dei principali specificatori di formato:
| Specificatore di formato | Tipo di dato |
|---|---|
%d | Integer |
%s | String |
%f | Float |
%t | Boolean |
%c | Character (or Rune) |
Le variabili sostituiscono i rispettivi segnaposto nella stringa di formato. Nell'output dell'esempio sopra, il primo %d viene sostituito dal valore di n. Allo stesso modo, il secondo viene sostituito con la variabile corrispondente, che è in, e l'ultimo %d viene sostituito dal valore di out.
È anche possibile formattare una stringa e memorizzarla all'interno di una variabile stringa utilizzando la funzione Sprintf, che formatta una stringa e restituisce la stringa risultante per la memorizzazione o l'utilizzo altrove, invece di visualizzarla immediatamente sullo schermo:
index.go
123456789101112package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }
Ecco un esempio più complesso che incorpora diversi concetti già trattati in un unico programma. Sarà un esercizio prezioso esaminare il seguente programma e il suo output per migliorare le tue capacità di lettura del codice:
index.go
12345678910package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }
In alcuni casi, il compilatore esegue un cast implicito del tipo per abbinare i valori agli specificatori di formato, come dimostrato nel seguente esempio:
index.go
1234567package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }
Il rune 'char' viene visualizzato sia come carattere sia come valore numerico. Tuttavia, in alcuni casi, il compilatore potrebbe generare un errore. Ad esempio, il seguente codice produrrà un output non valido perché un 'float' non può essere convertito implicitamente in un 'int':
index.go
12var value float32 = 5.7 fmt.Printf("%d", value)
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 1.96
Formattazione delle Stringhe
Scorri per mostrare il menu
Ora che abbiamo appreso tutti i tipi di dati di base, possiamo esplorare la formattazione delle stringhe. In programmazione, la formattazione delle stringhe consiste nell'inserire valori di variabili all'interno delle stringhe.
Nota
L'istruzione
importviene utilizzata per importare package in un'applicazione Go. Un package è una raccolta di file sorgente Go correlati che collaborano per offrire un insieme di funzionalità o servizi. Il packagefmtfornisce funzioni che permettono di formattare le stringhe.
Una delle funzioni del package fmt che abbiamo utilizzato è la funzione Println. La funzione Println visualizza il testo di output su una nuova riga ogni volta. Tuttavia, esiste una funzione chiamata Print che visualizza l'output senza andare a capo:
index.go
12345678package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }
In generale, è possibile utilizzare queste funzioni per inserire valori di variabili all'interno di dati stringa utilizzando il seguente metodo:
index.go
123456789package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }
Tuttavia, questo metodo non è molto efficiente perché è necessario suddividere la stringa in molti segmenti per inserire le variabili nei punti rilevanti, il che può diventare complicato in casi più complessi. La funzione Printf risolve questo problema e semplifica il processo di visualizzazione dell'output formattato.
La funzione Printf accetta una stringa di formato come primo argomento, seguita dai valori (o variabili) da inserire nella stringa di formato. Una stringa di formato contiene segnaposto (specificatori di formato) che definiscono il formato desiderato dell'output.
Di seguito è riportato un esempio:
index.go
12345678910package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }
Come illustrato nell'esempio, i specificatori di formato sono simboli che fungono da segnaposto per tipi di dati specifici all'interno di una stringa. Esiste uno specificatore di formato distinto per ciascun tipo di dato. La tabella seguente fornisce un elenco dei principali specificatori di formato:
| Specificatore di formato | Tipo di dato |
|---|---|
%d | Integer |
%s | String |
%f | Float |
%t | Boolean |
%c | Character (or Rune) |
Le variabili sostituiscono i rispettivi segnaposto nella stringa di formato. Nell'output dell'esempio sopra, il primo %d viene sostituito dal valore di n. Allo stesso modo, il secondo viene sostituito con la variabile corrispondente, che è in, e l'ultimo %d viene sostituito dal valore di out.
È anche possibile formattare una stringa e memorizzarla all'interno di una variabile stringa utilizzando la funzione Sprintf, che formatta una stringa e restituisce la stringa risultante per la memorizzazione o l'utilizzo altrove, invece di visualizzarla immediatamente sullo schermo:
index.go
123456789101112package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }
Ecco un esempio più complesso che incorpora diversi concetti già trattati in un unico programma. Sarà un esercizio prezioso esaminare il seguente programma e il suo output per migliorare le tue capacità di lettura del codice:
index.go
12345678910package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }
In alcuni casi, il compilatore esegue un cast implicito del tipo per abbinare i valori agli specificatori di formato, come dimostrato nel seguente esempio:
index.go
1234567package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }
Il rune 'char' viene visualizzato sia come carattere sia come valore numerico. Tuttavia, in alcuni casi, il compilatore potrebbe generare un errore. Ad esempio, il seguente codice produrrà un output non valido perché un 'float' non può essere convertito implicitamente in un 'int':
index.go
12var value float32 = 5.7 fmt.Printf("%d", value)
Grazie per i tuoi commenti!