Mảng trong Golang

Thứ sáu - 09/05/2025 00:37

Mảng - Array trong ngôn ngữ lập trình Golang hay Go khá giống với các ngôn ngữ lập trình khác. Dưới đây là những điều bạn cần biết về mảng trong Golang.

 

Trong chương trình, đôi khi chúng ta cần lưu trữ một tập hợp dữ liệu cùng loại, như danh sách điểm của học sinh. Kiểu tập hợp như vậy được lưu trữ trong chương trình bằng cách sử dụng Mảng. Mảng là một chuỗi có độ dài cố định được sử dụng để lưu trữ các phần tử đồng nhất trong bộ nhớ. Do có độ dài cố định nên mảng không phổ biến như Slice trong ngôn ngữ Go. Trong một mảng, bạn được phép lưu trữ hoặc nhiều hơn phần tử trong đó. Các phần tử của mảng được lập chỉ mục bằng cách sử dụng toán tử chỉ mục [] với vị trí bắt đầu từ 0 của chúng, nghĩa là chỉ mục của phần tử đầu tiên là mảng [0] và chỉ mục của phần tử cuối cùng là mảng [len (mảng) - 1].

Mảng trong Golang

Tạo và truy cập một Mảng

Trong ngôn ngữ Go, mảng được tạo theo hai cách khác nhau:

Sử dụng từ khóa var: Trong ngôn ngữ Go, mảng được tạo bằng từ khóa var của một kiểu cụ thể với tên, kích thước và phần tử. Cú pháp:

Var array_name[length]Type

Lưu ý quan trọng:

Trong ngôn ngữ Go, mảng có thể thay đổi, do đó bạn có thể sử dụng cú pháp array[index] ở phía bên trái của phép gán để đặt các phần tử của mảng tại chỉ mục đã cho.

Var array_name[index] = element

Ví dụ về mảng trong Golang

 
  • Bạn có thể truy cập các phần tử của mảng bằng cách sử dụng giá trị chỉ mục hoặc bằng cách sử dụng vòng lặp for.
  • Trong ngôn ngữ Go, kiểu mảng là một chiều.
  • Độ dài của mảng là cố định và không thể thay đổi.
  • Bạn được phép lưu trữ các phần tử trùng lặp trong một mảng.

Cách tiếp cận 1: Sử dụng khai báo viết tắt:

Trong ngôn ngữ Go, mảng cũng có thể khai báo bằng cách sử dụng khai báo viết tắt. Nó linh hoạt hơn so với khai báo ở trên.

Cú pháp:

array_name:= [length]Type{item1, item2, item3,...itemN}

Chiều dài của mảng trong Golang

Ví dụ:

// Chương trình Go minh họa cách tạo
//một mảng sử dụng khai báo viết tắt
// và truy cập vào các yếu tố của
// mảng bằng vòng lặp for
package main

import "fmt"

func main() {

// Khai báo viết tắt của mảng
arr:= [4]string{"geek", "gfg", "Geeks1231", "GeeksforGeeks"}

// Truy cập các phần tử của
//mảng dùng vòng lặp for
fmt.Println("Elements of the array:")

for i:= 0; i < 3; i++{
fmt.Println(arr[i])
}

}

Kết quả:

Elements of the array:
geek
gfg
Geeks1231

Mảng đa chiều

Như chúng ta đã biết, mảng là 1 chiều nhưng bạn được phép tạo mảng đa chiều trong Golang. Mảng đa chiều là mảng của các mảng cùng loại. Trong ngôn ngữ Go, bạn có thể tạo mảng đa chiều bằng cú pháp sau:

Array_name[Length1][Length2]..[LengthN]Type

Bạn có thể tạo một mảng đa chiều bằng cách sử dụng từ khóa Var hoặc sử dụng khai báo viết tắt như trong ví dụ dưới đây.

Lưu ý: Trong mảng đa chiều, nếu một ô không được người dùng khởi tạo bằng một giá trị nào đó, thì nó sẽ tự động được trình biên dịch khởi tạo bằng số không. Không có khái niệm nào chưa được khởi tạo trong Golang.

Ví dụ:

// Go program to illustrate the
// concept of multi-dimension array
package main

import "fmt"

func main() {

    // Creating and initializing
    // 2-dimensional array
    // Using shorthand declaration
    // Here the (,) Comma is necessary
    arr := [3][3]string{{"C #", "C", "Python"}, {"Java", "Scala", "Perl"},
        {"C++", "Go", "HTML"}}

    // Accessing the values of the
    // array Using for loop
    fmt.Println("Elements of Array 1")
    for x := 0; x < 3; x++ {
        for y := 0; y < 3; y++ {

            fmt.Println(arr[x][y])
        }
    }

    // Tạo mảng 2 chiều
    // bằng từ khóa var
    // và khởi tạo 
    // -một mảng đa chiều bằng index
    var arr1 [2][2]int
    arr1[0][0] = 100
    arr1[0][1] = 200
    arr1[1][0] = 300
    arr1[1][1] = 400

    // Truy cập các giá trị của mảng
    fmt.Println("Elements of array 2")
    for p := 0; p < 2; p++ {
        for q := 0; q < 2; q++ {
            fmt.Println(arr1[p][q])
        }
    }
}
 

Kết quả:

Elements of Array 1
C#
C
Python
Java
Scala
Perl
C++
Go
HTML
Elements of array 2
100
200
300
400

Lưu ý quan trọng về mảng trong Golang:

Trong một mảng, nếu một mảng không được khởi tạo rõ ràng, thì giá trị mặc định của nó bằng 0.

Ví dụ:

// Chương trình Go minh họa một mảng
package main

import "fmt"

func main() {
	// Tạo một mảng kiểu int
	// chứa 2 thành phần
	// Tại đây chúng ta không khởi tạo 
	//mảng, vì thế giá trị của mảng
	// bằng 0
	var myarr [2]int

	// In mảng
	fmt.Println("Elements of the Array: ", myarr)
}

Kết quả:

Elements of the Array : [0 0]

Trong một mảng, bạn có thể tìm độ dài của mảng bằng phương thức len() như được hiển thị bên dưới:

Ví dụ:

// Chương trình Go minh họa cách tìm
// chiều dài của mảng
package main

import "fmt"

func main() {

// Tạo mảng
// bằng khai báo viết tắt
arr1:= [3]int{9,7,6}
arr2:= [...]int{9,7,6,4,5,3,2,4}
arr3:= [3]int{9,3,5}

// Tìm chiều dài của 
// mảng bằng phương thức len
fmt.Println("Length of the array 1 is:", len(arr1))
fmt.Println("Length of the array 2 is:", len(arr2))
fmt.Println("Length of the array 3 is:", len(arr3))
}

Kết quả

Length of the array 1 is: 3
Length of the array 2 is: 8
Length of the array 3 is: 3

Trong một mảng, nếu dấu ba chấm ‘‘…’’ xuất hiện ở vị trí length, thì độ dài của mảng được xác định bởi các phần tử được khởi tạo. Như thể hiện trong ví dụ bên dưới:

Ví dụ:

// Chương trình Go minh họa
// khái niệm ba chấm trong một mảng
package main

import "fmt"

func main() {
// Tạo mảng có kích thước đã được xác định
// bởi số phần tử nằm ở bên trong
// Dùng ellipsis
myarray:= [...]string{"GFG", "gfg", "geeks",
                    "GeeksforGeeks", "GEEK"}

fmt.Println("Elements of the array: ", myarray)

// Chiều dài của mảng
// được quyết định bởi
// Dùng phương thức len() method
fmt.Println("Length of the array is:", len(myarray))
}

Kết quả: 

Elements of the array:  [GFG gfg geeks GeeksforGeeks GEEK]
Length of the array is: 5
 

Nguồn tin: Quantrimang.com:

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

  Ý kiến bạn đọc

THỐNG KÊ TRUY CẬP
  • Đang truy cập105
  • Máy chủ tìm kiếm4
  • Khách viếng thăm101
  • Hôm nay14,103
  • Tháng hiện tại23,406
  • Tổng lượt truy cập11,809,793
QUẢNG CÁO
Phan Thanh Phú
Quảng cáo 2
Liên kết site
Đăng nhập Thành viên
Hãy đăng nhập thành viên để trải nghiệm đầy đủ các tiện ích trên site
Thăm dò ý kiến

Bạn thấy Website cần cải tiến những gì?

Lịch Âm dương
Máy tính
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây