Il tipo di dati specifica quale tipo di dati può contenere una variabile Golang valida . Nel linguaggio Go, i tipi sono suddivisi in quattro categorie come segue:

- Tipi base: numeri, stringhe e booleani
- Tipi aggregati: array e strutture
- Tipi di riferimento: puntatore, slice, mappa, funzione e canale
- Tipo di interfaccia
Qui parleremo dei tipi di dati di base nel linguaggio Go. Sono classificati in tre sottocategorie:
Tipi di dati comuni in Golang
Numeri in Golang
Nel linguaggio Go, i numeri sono divisi in tre sottocategorie:
Interi: nel linguaggio Go, sia gli interi con segno che quelli senza segno hanno quattro dimensioni diverse, come mostrato nella tabella sottostante. Gli interi con segno sono rappresentati da inte gli interi senza segno sono rappresentati da uint.
Possibili operazioni aritmetiche: addizione, sottrazione, moltiplicazione, divisione, resto
|
Tipo di dati
|
Descrivere
|
| 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 1 a 6 bit |
| uint32 |
Intero senza segno a 32 bit |
| uint64 |
Intero senza segno a 64 bit |
| interno |
Sia i dati senza segno che quelli con segno hanno la stessa dimensione, 32 o 64 bit |
| unità |
Sia i dati senza segno che quelli con segno hanno la stessa dimensione, 32 o 64 bit |
| rune |
È un sinonimo di int32 e rappresenta anche i punti di codice Unicode. |
| byte |
Questo è un sinonimo di uint8. |
| uintptr |
Questo è un tipo intero senza segno. La sua larghezza non è definita, ma può contenere tutti i bit di un valore puntatore. |
Per esempio:
// Chương trình Go sử dụng số nguyên
package main
import "fmt"
func main() {
// Dùng 8-bit unsigned int
var X uint8 = 225
fmt.Println(X, X-3)
// Dùng 16-bit signed int
var Y int16 = 32767
fmt.Println(Y+2, Y-2)
}
Risultato:
225 222
-32767 32765
Esempio di operazioni aritmetiche:
// Các phép tính số học có thể có đối với số nguyên
// Tác giả : Chhanda Saha
package main
import "fmt"
func main() {
var x int16 = 170
var y int16 = 83
//Cộng
fmt.Printf(" addition : %d + %d = %d\n ", x, y, x+y)
//Trừ
fmt.Printf("subtraction : %d - %d = %d\n", x, y, x-y)
//Nhân
fmt.Printf(" multiplication : %d * %d = %d\n", x, y, x*y)
//Chia
fmt.Printf(" division : %d / %d = %d\n", x, y, x/y)
//Mô đun
fmt.Printf(" remainder : %d %% %d = %d\n", x, y, x%y)
}
Risultato:
Cộng : 170 + 83 = 253
Trừ : 170 - 83 = 87
Nhân : 170 * 83 = 14110
Chia : 170 / 83 = 2
Số dư : 170 % 83 = 4
- Numeri in virgola mobile: nel linguaggio Go, i numeri in virgola mobile sono divisi in due tipi, come mostrato nella tabella seguente.
- Le operazioni aritmetiche possono essere: addizione, sottrazione, moltiplicazione, divisione.
- Ci sono tre font:
- decimale (3,15)
- potenza (12e18 o 3e10)
- misto (13.16e12)
| Tipo di dati |
Descrivere
|
| galleggiante32 |
Numero in virgola mobile IEEE 754 a 32 bit |
| galleggiante64 |
Numero in virgola mobile IEEE 754 a 64 bit |
Per esempio:
//Minh họa chương trình Go dùng số dấu chấm động
package main
import "fmt"
func main() {
a := 20.45
b := 34.89
// Phép trừ hai số dấu chấm động
c := b-a
// Hiện kết quả
fmt.Printf("Result is: %f", c)
// Hiện kiểu biến C
fmt.Printf("\nThe type of c is : %T", c)
}
Risultato:
Kết quả: 14.440000
Kiểu của C là : float64
Esempio di operazioni aritmetiche per numeri in virgola mobile:
// Các phép toán số học có thể có cho số thực
// Tác giả : Chhanda Saha
package main
import "fmt"
func main() {
var x float32 = 5.00
var y float32 = 2.25
//Phép cộng
fmt.Printf("addition : %g + %g = %g\n ", x, y, x+y)
//Phép trừ
fmt.Printf("subtraction : %g - %g = %g\n", x, y, x-y)
//Phép nhân
fmt.Printf("multiplication : %g * %g = %g\n", x, y, x*y)
//Phép chia
fmt.Printf("division : %g / %g = %g\n", x, y, x/y)
}
Risultato:
Phép cộng : 5 + 2.25 = 7.25
Phép trừ : 5 - 2.25 = 2.75
Phép nhân : 5 * 2.25 = 11.25
Phép chia : 5 / 2.25 = 2.2222223
- Numeri complessi: i numeri complessi sono divisi in due parti, come mostrato nella tabella sottostante.
float32e float64fa anche parte di questi numeri complessi. La funzione di integrazione genera un numero complesso dalle sue parti immaginaria e reale e estrae tali parti.
- Esistono diverse funzioni integrate nei numeri complessi:
- complesso: crea un numero complesso da due numeri in virgola mobile.
- real() – ottiene la parte reale del numero complesso di input come float.
- imag() – ottiene la parte immaginaria del numero complesso di input come float
| Tipo di dati |
Descrivere
|
| complesso64 |
I numeri complessi contengono float32 come componenti reali e immaginarie. |
| complesso128 |
I numeri complessi contengono float64 come componenti reali e immaginarie. |
Per esempio:
// Chương trình Go dùng số phức
package main
import "fmt"
func main() {
var a complex128 = complex(6, 2)
var b complex64 = complex(9, 2)
fmt.Println(a)
fmt.Println(b)
// Hiện kiểu
fmt.Printf("The type of a is %T and "+
"the type of b is %T", a, b)
}
Risultato:
(6+2i)
(9+2i)
Kiểu của a là complex128, kiểu của b là complex64
Esempi di funzioni integrate:
// Các hàm tích hợp là số phức
// Tác giả : Chhanda Saha
package main
import "fmt"
func main() {
comp1 := complex(10, 11)
// cú pháp init số phức
comp2 := 13 + 33i
fmt.Println("Complex number 1 is :", comp1)
fmt.Println("Complex number 1 is :", comp2)
// lấy phần real
realNum := real(comp1)
fmt.Println("Real part of complex number 1:", realNum)
// lấy phần hình ảnh
imaginary := imag(comp2)
fmt.Println("Imaginary part of complex number 2:", imaginary)
}
Risultato:
Số phức 1 là: (10+11i)
Số phức 1 là: (13+33i)
Phần thực của số phức 1: 10
Phần ảo của số phức 2: 33
Booleano
Il tipo di dati booleano rappresenta solo un bit di informazione che può essere vero o falso. I valori di tipo booleano non vengono convertiti implicitamente o esplicitamente in nessun altro tipo.
Per esempio:
//Minh họa chương trình dùng boolean
package main
import "fmt"
func main() {
// Các biến
str1 := "Quantrimang"
str2:= "quantrimang"
str3:= "Quantrimang"
result1:= str1 == str2
result2:= str1 == str3
// Hiện kết quả
fmt.Println( result1)
fmt.Println( result2)
// Hiện kiểu của result1 và result2
fmt.Printf("Kiểu của result1 là %T và "+
"kiểu của result2 là %T",
result1, result2)
}
Risultato:
false
true
Kiểu của result1 là bool và kiểu của result2 là bool
Catena
Il tipo di dati stringa rappresenta una sequenza di punti di codice Unicode. In altre parole, possiamo dire che una stringa è una sequenza immutabile di byte, il che significa che una volta creata, una stringa non può essere modificata. Le stringhe possono contenere dati arbitrari, compresi byte con valore zero in formato leggibile dall'uomo. Le stringhe possono essere concatenate utilizzando l'operatore di addizione (+).
Per esempio:
// Chương trình Go dùng chuỗi
package main
import "fmt"
func main() {
// Biến str chứa chuỗi
str := "Quantrimang"
// Hiện độ dài của chuỗi
fmt.Printf("Length of the string is:%d",
len(str))
// Hiện chuỗi
fmt.Printf("\nString is: %s", str)
// Hiện kiểu biến str
fmt.Printf("\nType of str is: %T", str)
}
Risultato:
Chiều dài của chuỗi là: 13
Chuỗi là: Quantrimang
Kiểu của chuỗi là: chuỗi
Esempio di concatenazione di stringhe:
// Nối chuỗi
// Tác giả : Chhanda Saha
package main
import "fmt"
func main() {
var str1 string = "STRING_"
var str2 string = "Concatenation"
// Nối chuỗi bằng toán tử +
fmt.Println("New string : ", str1+str2)
}
Risultato:
New string : STRING_Concatenation