Duyệt qua slice
Bài học 9 trên 21 trong khóa học Slice và map trong Go của Coddy.
Tương tự như cách chúng ta đã làm với mảng (array), bạn có thể duyệt qua một slice bằng vòng lặp for. Hãy xem ví dụ sau:
Giả sử chúng ta có một slice như sau:
str := []string{"Python","Golang","Rust","JavaScript","Haskell"}
for i := 0; i < len(str); i++ {
fmt.Println(i, str[i])
}Ở đây, chúng ta duyệt từ 0 đến độ dài của slice bằng hàm <strong>len()</strong> và nhận được kết quả:
0 Python
1 Golang
2 Rust
3 JavaScript
4 HaskellPhần này không có gì mới, nhưng hãy dùng một từ khóa mới có tên là <strong>range</strong>, cho phép chúng ta duyệt qua slice. Cú pháp như sau:
for index, value := range str {
fmt.Println(index, value)
}Trong ví dụ này, <strong>range</strong> được dùng để duyệt qua các phần tử của slice <strong>str</strong>, cung cấp cả chỉ số và giá trị tại chỉ số đó trong mỗi lần lặp.
Kết quả sẽ giống như trước:
0 Python
1 Golang
2 Rust
3 JavaScript
4 HaskellNếu không cần chỉ số, bạn có thể bỏ qua bằng cách dùng dấu gạch dưới thay cho một tên biến:
for _, value := range str {
fmt.Println(value)
}
Thử thách
DễTrong đoạn code đã cho, chúng ta định nghĩa một lát cắt gồm các số nguyên.
- Dùng từ khóa
<strong>range</strong>để lặp qua lát cắt và kiểm tra từng số để xác định xem số đó có phải là số chẵn hay không - Nếu một số là số chẵn, hãy cộng số đó vào một biến dùng để lưu tổng các số chẵn
Tự làm thử
package main
import "fmt"
func main() {
// Lát cắt (slice) gồm 10 số. Đừng thay đổi phần này!
numbers := []int{45, 60, 3, 4, 5, 80, 7, 8, 9, 10}
// Khởi tạo một biến (variable) để lưu tổng các số chẵn
var sum int
// Duyệt qua lát cắt
// Kiểm tra xem số đó có chẵn không
// Nếu chẵn, cộng số đó vào tổng
// In tổng ra màn hình
fmt.Println("Sum of even numbers:", sum)
}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