Menu
CoddyTech

Thêm phần tử vào slice

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

Trong các bài học trước, chúng ta đã thảo luận rằng điểm khác nhau giữa lát cắt và mảng nằm ở kích thước của chúng, điều này thể hiện rõ khi kiểm tra độ dài.

Ví dụ, nếu ta định nghĩa một lát cắt như sau:

nums := []int{23, 5, 6}

Lát cắt có ba phần tử, và khi kiểm tra độ dài bằng hàm <strong>len()</strong>, ta nhận được 3:

nums := []int{23, 5, 6}
fmt.Println(len(nums)) // 3

Nếu thêm phần tử vào lát cắt rồi kiểm tra kích thước, ta sẽ nhận được kích thước mới:

nums := []int{23, 5, 6, 9, 22}
fmt.Println(len(nums)) // 5

Ngược lại, mảng có kích thước cố định. Ví dụ:

nums := [4]int{23}
fmt.Println(len(nums)) // 4

Dù có ít hơn 4 phần tử, độ dài vẫn cố định.

Ta thêm phần tử vào lát cắt bằng <strong>append</strong>:

books := []string{"Python", "Rust"}
books = append(books, "Golang")
fmt.Println(books)

Khi chạy, ta nhận được:

[Python Rust Golang]

Trong Golang, lát cắt có các hàm tích hợp sẵn, và <strong>append()</strong> là một trong số đó, cho phép ta thêm phần tử mới vào lát cắt hiện có.

Lưu ý rằng do lát cắt có kích thước động, ta không thể dùng chỉ số để thêm phần tử ( <strong>books[2] = "Golang"</strong> sẽ không hoạt động).

challenge icon

Thử thách

Dễ

Viết chương trình nhận 3 đầu vào từ người dùng và thêm chúng vào lát cắt có tên <strong>coddy</strong> như được định nghĩa trong đoạn code đã cho. Thực hiện các bước sau:

  1. In ra độ dài của lát cắt trước khi thêm phần tử.
  2. Thêm phần tử vào lát cắt.
  3. In ra lát cắt và độ dài đã cập nhật sau khi thêm phần tử (trên các dòng riêng biệt).

Tự làm thử

package main

import "fmt"

func main() {
    // Nhận đầu vào từ người dùng. Đừng thay đổi phần này!
    var first, second, third string
	fmt.Scan(&first)
	fmt.Scan(&second)
	fmt.Scan(&third)
	// Định nghĩa slice
    coddy := []string {"SQL","Rust","C#","Golang"}
    // In ra độ dài
    
    // Thêm phần tử vào slice
    
    // In ra slice và độ dài sau khi cập nhật

}

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