Cắt slice
Bài học 4 trên 21 trong khóa học Slice và map trong Go của Coddy.
Cùng tìm hiểu sâu hơn về khái niệm cắt lát và biểu thức cắt lát. Cắt lát nghĩa là lấy một mảng hoặc lát cắt ban đầu rồi thu hẹp phạm vi của nó. Để hiểu rõ hơn, hãy cùng xem qua một vài ví dụ.
Giả sử ta có một lát cắt như sau trong Go:
arr := []string{"code", "coffee", "tea", "water"}Bây giờ, giả sử ta chỉ muốn lấy "code" và "coffee" từ lát cắt này. Ta có thể làm điều đó bằng cách cắt lát như bên dưới:
newArr := arr[0:2]Cú pháp cắt lát như sau: <strong>arr[start:stop]</strong>. Ta ghi tên lát cắt hoặc mảng muốn thu hẹp, rồi đặt trong dấu ngoặc vuông vị trí bắt đầu, tiếp theo là dấu hai chấm, rồi đến vị trí kết thúc.
Vị trí bắt đầu phải là chỉ số của một phần tử trong lát cắt, tính từ zero.
Vị trí kết thúc cho biết vị trí của phần tử, chứ không phải chỉ số, nên bắt đầu từ 1.
Trong ví dụ này, ta bắt đầu từ chỉ số 0 và lấy 2 phần tử, biểu thị bằng <strong>arr[0:2]</strong>. Nếu vị trí bắt đầu là 0, ta có thể bỏ qua vị trí đó mà vẫn thu được kết quả tương tự:
arr[:2]Thao tác này lấy các phần tử "code" và "coffee" từ lát cắt.
Ta có thể chọn vị trí bắt đầu và kết thúc khi cắt lát. Ví dụ, nếu muốn lấy "coffee" và "tea" từ lát cắt, ta có thể làm như sau:
arr := []string{"code", "coffee", "tea", "water"}
newArr := arr[1:3]
Thử thách
DễTrong đoạn code đã cho, chúng ta định nghĩa một lát cắt gồm 6 phần tử kiểu chuỗi (string). Hãy dùng phép cắt lát để lấy các giá trị <strong>"apple"</strong> ,<strong>"orange"</strong> và <strong>"banana"</strong> từ lát cắt ban đầu rồi in ra màn hình.
Tự làm thử
package main
import "fmt"
func main() {
// Lát cắt fruits, đừng thay đổi phần này!
fruits := []string{"pineapple", "kiwi", "apple", "orange", "banana", "grape", "kiwi"}
// Tạo lát cắt từ fruits
// In lát cắt ra màn hình
}Tất cả bài học trong Slice và map trong Go
1Giới thiệu
Giới thiệu3Slice phía sau hậu trường
Slice là một mảngTạo slice bằng makeSao chép sliceXóa một phần tửThử thách ôn tập #1Thử thách ôn tập #2Tự luyện tập: Trình biên dịch Go online