Menu
CoddyTech

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 Haskell

Phầ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 Haskell

Nế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)
}

 

challenge icon

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

Tự luyện tập: Trình biên dịch Go online