Menu
CoddyTech

Cắt lại slice

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

Go có một tính năng gọi là cắt lại, nghĩa là thực hiện thêm một lần cắt trên lát con. Hãy xem ví dụ sau để hiểu rõ hơn:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}

Ở đây, ta định nghĩa một lát gồm 7 phần tử. Hãy cắt lát này để lấy 4 phần tử đầu tiên trong số 7 phần tử:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println(newS)

Kết quả trả về là một lát gồm 4 phần tử:

[games coffee code play]

Cắt lại là khả năng thực hiện thêm một lần cắt trên lát newS như sau:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
newS2 := newS[2:]
fmt.Println("Reslicing: ", newS2)

Kết quả là:

Slicing:  [games coffee code play]
Reslicing:  [code play]

Lưu ý rằng khi cắt, ta có thể truy cập các phần tử trong lát bằng chỉ số. Ví dụ:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
fmt.Println(newS[2])

Trong ví dụ này, ta lấy phần tử ở chỉ số 2:

Slicing:  [games coffee code play]
code

Tương tự, ta có thể sửa giá trị:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
fmt.Println("Before Modification :", newS[2])
newS[2] = "sleep"
fmt.Println("After Modification :", newS[2])

Đầu ra sẽ là:

Slicing:  [games coffee code play]
Before Modification : code
After Modification : sleep

Tương tự, ta cũng có thể thêm phần tử vào lát:

newS := s[0:4]
fmt.Println("Slicing: ", newS)
newS = append(newS, "sleep")
fmt.Println("After Modification :", newS)

Kết quả sẽ là:

Slicing:  [games coffee code play]
After Modification : [games coffee code play sleep]
challenge icon

Thử thách

Dễ

Trong đoạn code đã cho, chúng ta định nghĩa một lát cắt có kiểu chuỗi.

  • Tạo một lát cắt khác có tên "fruits" và lưu năm phần tử cuối cùng của lát cắt đã cho vào đó.
  • In lát cắt "fruits" ra màn hình.
  • Thêm hai phần tử vào lát cắt "fruits": <strong>"pear"</strong> và <strong>"pineapple"</strong>.
  • In lát cắt "fruits" đã cập nhật.

Tự làm thử

package main

import "fmt"

func main() {
    // Định nghĩa lát cắt
	str:= []string{"apple", "banana", "cherry", "date", "fig", "grape", "kiwi", "lemon", "mango"}
	// Lấy 5 phần tử cuối cùng
	 
	// In lát cắt ra màn hình
 
	// Thêm hai phần tử vào lát cắt
 
	// In lát cắt 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