Skip to main content

Kiểu Array trong Go

Array (mảng) trong Go tương tự các ngôn ngữ khác, tuy nhiên nó có kích thước cố định (fixed size) và các phần tử bên trong phải cùng loại dữ liệu.

Ví dụ:

// Khoi tao mang string voi kich thuoc 2
var a [2]string

// Gan gia tri
a[0] = "Hello"
a[1] = "World"

// print
fmt.Println(a[0], a[1])
fmt.Println(a)

// Khoi tao mang va dong thoi gan gia tri
primes := [6]int{2, 3, 5, 7, 11, 13}
fmt.Println(primes)

// Khởi tạo mảng nhưng không ghi rõ kích thước (thay bằng dấu ba chấm), trình biên dịch sẽ tự hiểu dựa vào số phần tử đã khai báo
numbers := [...]int{12, 78, 50}
fmt.Println(numbers)

Không giống đa số các ngôn ngữ khác, Array trong Go không phải là dạng tham chiếu (reference types) mà là dạng tham trị (value types). Khi gán giá trị nó cho một biến mới thì nó sẽ tạo ra một bản copy của Array cũ, và mọi thay đổi ở Array mới không ảnh hưởng gì đến Array cũ.

Ví dụ:

// Khởi tạo và gán giá trị
a := [...]int{1, 2, 3, 4, 5}
b := a   // b là một array mới có giá trị giống a
b[0] = 9   // Thay đổi giá trị một phần tử của b

fmt.Println("a is ", a)   // Kết quả: 1 2 3 4 5
fmt.Println("b is ", b)   // Kết quả: 9 2 3 4 5