Tipul de date specifică ce tip de date poate conține o variabilă Golang validă . În limba Go, tipurile sunt împărțite în patru categorii, după cum urmează:

- Tipuri de bază: numere, șiruri și booleeni
- Tipuri de agregate: tablouri și structuri
- Tipuri de referință: Pointer, slice, hartă, funcție și canal
- Tipul de interfață
Aici vom discuta despre tipurile de date de bază în limba Go. Acestea sunt clasificate în trei subcategorii:
Tipuri de date comune în Golang
Numerele în Golang
În limba Go, numerele sunt împărțite în trei subcategorii:
Numerele întregi: în limba Go, atât numerele întregi cu semne, cât și cele fără semne vin în patru dimensiuni diferite, așa cum se arată în tabelul de mai jos. Numerele întregi cu semn sunt reprezentate prin intși numerele întregi fără semn sunt reprezentate prin uint.
Operații aritmetice posibile: adunarea, scăderea, înmulțirea, împărțirea, restul
|
Tip de date
|
Descrie
|
| int8 |
Număr întreg cu semn pe 8 biți |
| int16 |
întreg cu semn pe 16 biți |
| int32 |
Număr întreg cu semn pe 32 de biți |
| int64 |
Număr întreg cu semn pe 64 de biți |
| uint8 |
întreg fără semn pe 8 biți |
| uint16 |
Integer1 nesemnat pe 6 biți |
| uint32 |
Număr întreg nesemnat pe 32 de biți |
| uint64 |
întreg fără semn pe 64 de biți |
| int |
Atât nesemnate cât și semnate au aceeași dimensiune, 32 sau 64 de biți |
| uint |
Atât nesemnate cât și semnate au aceeași dimensiune, 32 sau 64 de biți |
| rune |
Acesta este un sinonim pentru int32 și reprezintă, de asemenea, puncte de cod Unicode. |
| octet |
Acesta este un sinonim pentru uint8. |
| uintptr |
Acesta este un tip întreg fără semn. Lățimea sa este nedefinită, dar poate conține toți biții unei valori pointer. |
De exemplu:
// 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)
}
Rezultat:
225 222
-32767 32765
Exemplu de operații aritmetice:
// 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)
}
Rezultat:
Cộng : 170 + 83 = 253
Trừ : 170 - 83 = 87
Nhân : 170 * 83 = 14110
Chia : 170 / 83 = 2
Số dư : 170 % 83 = 4
- Numere în virgulă mobilă: în limba Go, numerele în virgulă mobilă sunt împărțite în două tipuri, așa cum se arată în tabelul de mai jos.
- Operațiile aritmetice pot fi: adunarea, scăderea, înmulțirea, împărțirea.
- Există trei fonturi:
- zecimală (3,15)
- putere (12e18 sau 3e10)
- mixt (13.16e12)
| Tip de date |
Descrie
|
| plutitor32 |
Număr în virgulă mobilă IEEE 754 pe 32 de biți |
| float64 |
Număr în virgulă mobilă IEEE 754 pe 64 de biți |
De exemplu:
//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)
}
Rezultat:
Kết quả: 14.440000
Kiểu của C là : float64
Exemplu de operații aritmetice pentru numere în virgulă mobilă:
// 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)
}
Rezultat:
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
- Numere complexe: numerele complexe sunt împărțite în două părți, prezentate în tabelul de mai jos.
float32și float64face parte, de asemenea, din aceste numere complexe. Funcția de integrare generează un număr complex din părțile sale imaginare și reale, iar funcția de integrare extrage acele părți.
- Există mai multe funcții încorporate în numere complexe:
- complex – creează un număr complex din două flotoare.
- real() – primește partea reală a numărului complex de intrare ca un float.
- imag() – obțineți partea imaginară a numărului complex de intrare ca un float
| Tip de date |
Descrie
|
| complex64 |
Numerele complexe conțin float32 ca componente reale și imaginare. |
| complex128 |
Numerele complexe conțin float64 ca componente reale și imaginare. |
De exemplu:
// 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)
}
Rezultat:
(6+2i)
(9+2i)
Kiểu của a là complex128, kiểu của b là complex64
Exemple de funcții încorporate:
// 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)
}
Rezultat:
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
boolean
Tipul de date boolean reprezintă doar un bit de informație care este fie adevărat, fie fals. Valorile de tip boolean nu sunt convertite implicit sau explicit în niciun alt tip.
De exemplu:
//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)
}
Rezultat:
false
true
Kiểu của result1 là bool và kiểu của result2 là bool
Lanţ
Tipul de date șir reprezintă o secvență de puncte de cod Unicode. Cu alte cuvinte, putem spune că un șir este o secvență imuabilă de octeți, adică odată ce un șir este creat, nu îl puteți modifica. Șirurile de caractere pot conține date arbitrare, inclusiv octeți cu valoare zero în formă care poate fi citită de om. Șirurile pot fi concatenate folosind operatorul de adăugare (+).
De exemplu:
// 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)
}
Rezultat:
Chiều dài của chuỗi là: 13
Chuỗi là: Quantrimang
Kiểu của chuỗi là: chuỗi
Exemplu de concatenare de șiruri:
// 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)
}
Rezultat:
New string : STRING_Concatenation