English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Golang

Istruzioni di controllo Golang

Funzione e metodo Golang

Struttura Golang

Tagli e array Golang

Stringa (String) Golang

Puntatore Golang

Interfaccia Golang

Concordanza Golang

Eccezioni Golang

Articoli vari Golang

Tipi di dati del linguaggio Go

Tipo di dati specificato come validoVariabile GoTipi di dati che possono essere salvati. Nei linguaggi Go, i tipi sono divisi in quattro categorie:

  1. Tipo base:I numeri, le stringhe e i valori booleani appartengono a questa categoria.

  2. Tipo aggregato:Gli array e le strutture appartengono a questa categoria.

  3. Tipo di riferimento:指针,切片,map集合,函数和Channel属于此类别。

  4. 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

Tipi numerici

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 datiDescrizione
    int8Intero con segno a 8 bit
    int16Intero con segno a 16 bit
    int32Intero con segno a 32 bit
    int64Intero con segno a 64 bit
    uint8Intero senza segno a 8 bit
    uint16Intero senza segno a 16 bit
    uint32Intero senza segno a 32 bit
    uint64Intero senza segno a 64 bit
    intin e uint hanno la stessa dimensione, sia in 32 che in 64 bit.
    uintin 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 datiDescrizione
    float32Numero a virgola mobile 32 bit IEEE 754
    float64Numero 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 datiDescrizione
    complex64Comprende un numero complesso con componenti reale e immaginario float32.
    complex128Numeri 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

Tipo di dati booleano

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

Tipo di dati stringa

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