Menu
CoddyTech

Phương thức của phạm vi

Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 9 trên 56.

Các khoảng là những Collection thực sự, nên chúng có cùng bộ công cụ mà bạn dùng với mảng.

contains, count, first và last đều hoạt động trực tiếp:

let r = 1...10
print(r.contains(5))            // true
print(r.count)                  // 10
print(r.first!, r.last!)        // 1 10

Hầu hết các phương thức mảng bạn đã dùng cũng hoạt động. filter trả về một mảng vì kết quả lọc một khoảng không phải là một khoảng:

let evens = (1...10).filter { $0 % 2 == 0 }
print(evens)                    // [2, 4, 6, 8, 10]

Tương tự reduce: range cũng có phương thức này, và bạn sẽ dùng nó để tính nhanh tổng và tích.

challenge icon

Thử thách

Dễ

Đọc hai số nguyên (trên hai dòng): n và target. Coi khoảng đóng 1...n là tập dữ liệu của bạn.

In ra ba dòng:

  1. true khi target nằm trong khoảng, nếu không thì false
  2. Tích của mọi giá trị trong khoảng (n!: giai thừa). Dùng reduce.
  3. Các giá trị trong khoảng là bội số của 3, được nối bằng , (hoặc một dòng trống nếu không có giá trị nào phù hợp). Dùng filter.

Với đầu vào 5 / 3, đầu ra là:

true
120
3

Tự làm thử

let n = Int(readLine()!)!
let target = Int(readLine()!)!
let r = 1...n

// TODO: dùng contains(target) để kiểm tra, reduce để tính tích, filter để lọc các bội số của 3
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng thực thi

Tự luyện tập: Playground Swift