Menu
CoddyTech

Sức chứa tối đa

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

Trong bài học trước, chúng ta đã nói về sức chứa và biết rằng khi thực hiện thao tác cắt lát, sức chứa được xác định từ vị trí bắt đầu đến vị trí kết thúc của lát cắt. Tuy nhiên, chúng ta có thể dùng toán tử hoặc biểu thức cắt lát để điều khiển hoặc giới hạn sức chứa. Hãy cùng xem một ví dụ:

Chúng ta biết cú pháp của toán tử cắt lát như sau: <strong>[start:stop]</strong>, nhưng có thể thêm tùy chọn thứ ba để thành: <strong>[start:stop:capacity]</strong>. Tùy chọn thứ ba cho phép đặt sức chứa tối đa của lát cắt.

Vì vậy, bằng cách dùng biểu thức cắt lát đầy đủ, bạn có thể cắt một lát cắt và đồng thời giới hạn sức chứa của lát cắt được trả về từ biểu thức cắt lát đó.

Giả sử chúng ta có một lát cắt như sau:

numbers := []int{1, 2, 3, 4, 5, 6}

Hãy cắt lát này để lấy 3 phần tử:

numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4]

Chúng ta có thể biểu diễn như sau:


Ở đây, chúng ta lấy được 3 phần tử và có sức chứa là 5, đúng như hình minh họa.

Bây giờ, nếu dùng sức chứa trong toán tử cắt lát và đặt giá trị này, chẳng hạn, thành 3:

numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4:4]

Hãy xem sức chứa như vị trí phần tử ở đây, chúng ta đặt nó thành 4. Nhưng lưu ý rằng vị trí kết thúc không thể lớn hơn vị trí sức chứa.

challenge icon

Thử thách

Dễ

Trong đoạn code đã cho, chúng ta định nghĩa một lát cắt có tên coddy với 6 phần tử.

  • Thực hiện thao tác cắt lát để lấy các phần tử "Tech" và "Learn Golang" từ lát cắt coddy, đồng thời đảm bảo sức chứa là 4.

Tự làm thử

package main

import (
	"fmt"
)

func main() {
    // Một slice gồm 6 phần tử 
	coddy := []string{"Coddy","Tech","Learn Golang","Learn JavaScript","C++","C#"}
	// Thực hiện cắt slice tại đây 
	 
	// In các phần tử ra màn hình
	fmt.Println("Elements:" ?)
	// In sức chứa
	fmt.Println("Capacity:" ?)

}

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