English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Tipo di dati specificato come validoVariabile GoTipi di dati che possono essere salvati. Nei linguaggi Go, i tipi sono divisi in quattro categorie:
Tipo base:I numeri, le stringhe e i valori booleani appartengono a questa categoria.
Tipo aggregato:Gli array e le strutture appartengono a questa categoria.
Tipo di riferimento:指针,切片,map集合,函数和Channel属于此类别。
Puntatori, tagli, insiemi map, funzioni e Channel appartengono a questa categoria.
Qui, discuteremo del tipo di interfaccia del linguaggio GoTipi di dati fondamentali. InTipi di dati fondamentaliVengono ulteriormente suddivisi in tre sottocategorie rispettivamente:
Numeri
Booleani
Stringhe
In Go, i numeri vengono divisi intreSottocategorie:
Numeri:In Go, gli interi con segno e senza segno possono essere utilizzati in quattro dimensioni diverse, come indicato nella tabella di seguito. Gli interi con segno sono rappresentati da int, mentre gli interi senza segno sono rappresentati da uint.
Tipo di dati | Descrizione |
---|---|
int8 | Intero con segno a 8 bit |
int16 | Intero con segno a 16 bit |
int32 | Intero con segno a 32 bit |
int64 | Intero con segno a 64 bit |
uint8 | Intero senza segno a 8 bit |
uint16 | Intero senza segno a 16 bit |
uint32 | Intero senza segno a 32 bit |
uint64 | Intero senza segno a 64 bit |
int | in e uint hanno la stessa dimensione, sia in 32 che in 64 bit. |
uint | in e uint hanno la stessa dimensione, sia in 32 che in 64 bit. |
rune | È un sinonimo di int32 e rappresenta anche il punto di codice Unicode. |
byte | È un sinonimo di int8. |
uintptr | È un tipo di intero senza segno. La sua larghezza non è definita, ma può contenere tutti i bit di un valore di puntatore. |
//Uso di numeri interi package main import "fmt" func main() { //Uso di un intero a 8 bit senza segno var X uint8 = 225 fmt.Println(X+1, X) //Uso di un intero a 16 bit con segno var Y int16 = 32767 fmt.Println(Y+2, Y-2) }
Output:
226 225 -32767 32765
Numero a virgola mobile:In Go, i numeri a virgola mobile vengono divisi in2Simile a quanto indicato nella tabella di seguito:
Tipo di dati | Descrizione |
---|---|
float32 | Numero a virgola mobile 32 bit IEEE 754 |
float64 | Numero a virgola mobile 64 bit IEEE 754 |
//Uso dei numeri a virgola mobile package main import "fmt" func main() { a := 20.45 b := 34.89 //Sottrazione di due numeri a virgola mobile c := b-a //Mostra il risultato fmt.Printf("Risultato: %f", c) //Mostra il tipo della variabile c fmt.Printf("\nc è del tipo: %T", c) }
Output:
Risultato: 14.440000 Il tipo di c è: float64
Numero complesso:Divide un numero complesso in due parti, come indicato nella tabella seguente. float32 e float64 sono anche parte di questi numeri complessi. Le funzioni predefinite creano un numero complesso dalle sue parti reale e immaginaria, e le funzioni predefinite estraggono queste parti.
Tipo di dati | Descrizione |
---|---|
complex64 | Comprende un numero complesso con componenti reale e immaginario float32. |
complex128 | Numeri complessi che contengono float64 come parte reale e parte immaginaria. |
//Uso dei numeri complessi package main import "fmt" func main() { var a complex128 = complex(6, 2) var b complex64 = complex(9, 2) fmt.Println(a) fmt.Println(b) //Mostra i tipi fmt.Printf("Il tipo di a è %T e "+ "Il tipo di b è %T", a, b) }
Output:
(6+2i) (9+2i) Il tipo di a è complex128 e il tipo di b è complex64
Il tipo di dati booleano rappresenta solo true o false. I valori del tipo booleano non vengono convertiti implicitamente o esplicitamente in qualsiasi altro tipo.
//Uso dei valori booleani package main import "fmt" func main() { //Variabili str1 := "w3codebox" str2 := "w3codebox" str3 := "w3codebox" result1 := str1 == str2 result2 := str1 == str3 //Stampa i risultati fmt.Println(result1) fmt.Println(result2) //Mostra i tipi di result1 e result2 fmt.Printf("Il tipo di result1 è %T, "+ "Il tipo di result2 è %T", result1, result2) }
Output:
true true Il tipo di result1 è bool, il tipo di result2 è bool
Il tipo di dati stringa rappresenta una sequenza di punti di codice Unicode. In altre parole, possiamo dire che una stringa è una sequenza di byte immutabili, il che significa che una volta creata una stringa, non è possibile modificarla. Le stringhe possono contenere dati di qualsiasi tipo, inclusi byte con valori nulli rappresentati in modo leggibile dall'uomo.
//Uso della stringa package main import "fmt" func main() { //Variabile utilizzata per memorizzare la stringa str := "w3codebox" //Mostra la lunghezza della stringa fmt.Printf("La lunghezza della stringa:%d", len(str)) //Mostra la stringa fmt.Printf("\nLa stringa è: %s", str) // Mostra il tipo della variabile str fmt.Printf("\nIl tipo di str è: %T", str) }
Output:
La lunghezza della stringa:5 La stringa è: w3codebox Il tipo di str è: string