Menu
CoddyTech

Slice và mảng

Bài học 2 trên 21 trong khóa học Slice và map trong Go của Coddy.

Trong các ngôn ngữ lập trình khác, chúng ta thường gặp mảng động. Trong Go, chúng được gọi là slice, cho phép chúng ta thêm hoặc xóa phần tử một cách linh hoạt. Tuy nhiên, cần lưu ý rằng bản thân slice không lưu trữ phần tử mà đóng vai trò như một cửa sổ nhìn vào một mảng.

Bây giờ, hãy cùng tìm hiểu sự khác biệt giữa slice và mảng qua một ví dụ. Hãy xem một mảng có ba phần tử:

arr := [3]string{"Python", "Go", "Rust"}

Như chúng ta đã biết, mảng là kiểu tập hợp có kích thước cố định, nên không thể thêm phần tử. Nếu thử thêm một phần tử mới, sẽ xảy ra lỗi.

Slice giúp khắc phục hạn chế này. Hãy cùng tìm hiểu qua một ví dụ:

var books = []string{"SQL", "Java", "C++"}

Như bạn thấy, chúng ta định nghĩa slice <strong>books</strong> giống như một mảng thông thường, chỉ khác ở chỗ chúng ta không xác định độ dài.

Nhờ vậy, chúng ta có thể thêm hoặc xóa phần tử linh hoạt trong khi chương trình chạy, điều không thể làm với mảng.

Cách truy cập phần tử trong slice tương tự như trong mảng, bằng cách sử dụng chỉ số:

fmt.Println(books[1]) // Java

Trong Go, slice giúp làm việc với các tập hợp linh hoạt hơn nhờ cho phép thay đổi chúng, khác với mảng có cấu trúc cố định.

challenge icon

Thử thách

Dễ
  • Tạo một slice gồm các phần tử sau theo thứ tự: "Learn Go", "Learn Python", "Learn Java", "Coddy.tech".
  • In "Learn Go" và "Coddy.tech" ra màn hình bằng cách dùng chỉ số.
  • Bạn có thể tùy ý đặt tên cho slice.

 

Tự làm thử

package main

import (
	"fmt"
)

func main() {
    // Viết code của bạn ở đây
    
}

Tất cả bài học trong Slice và map trong Go

Tự luyện tập: Trình biên dịch Go online