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 10Hầ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.
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:
truekhitargetnằm trong khoảng, nếu không thìfalse- Tích của mọi giá trị trong khoảng (
n!: giai thừa). Dùngreduce. - 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ùngfilter.
Với đầu vào 5 / 3, đầu ra là:
true
120
3Tự 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
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
1Chuỗi chuyên sâu
Đếm và chỉ sốChữ hoa, chữ thường và xóa khoảng trắngTìm kiếm trong chuỗiTách và nối chuỗiThay thế chuỗi conÔn tập: Kiểm tra tên người dùng4Tập hợp
Tạo tập hợpPhép hợp và phép giaoPhép trừ và hiệu đối xứngTập con và tập hợp conÔn tập: Bộ lọc thẻ7Dự án: Theo dõi thói quen
Tổng quan dự ánĐánh dấu hoàn thành10Dự án: bộ máy trắc nghiệm
Tổng quan dự ánĐặt câu hỏi2Phạm vi và bước nhảy
Khoảng đóng và khoảng nửa mởBước nhảyPhương thức của phạm viPhạm vi trong switchÔn tập: Lưới lịchTự luyện tập: Playground Swift