Ôn tập: xây dựng pipeline
Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 43 trên 56.
Thử thách
Trung bìnhXây dựng một quy trình xử lý dữ liệu nhỏ bằng các bao đóng.
Đọc ba dòng:
- Một số nguyên
min - Một số nguyên
scale - Một danh sách số nguyên, phân tách bằng dấu phẩy
Định nghĩa hai hàm tạo bao đóng:
makeFilter(min: Int) -> (Int) -> Boollưu giữminvà trả về một vị từn > minmakeScaler(by: Int) -> (Int) -> Intlưu giữbyvà trả về một hàm nhân với giá trị đó
Sau đó, định nghĩa hàm pipeline(_ nums: [Int], filter: (Int) -> Bool, transform: (Int) -> Int) -> [Int] để lọc trước, rồi biến đổi.
In ra ba dòng:
- Các số vượt qua bộ lọc, nối với nhau bằng
, - Các số đó sau khi nhân, nối với nhau bằng
, - Tổng các giá trị sau khi nhân
Với đầu vào 5 / 3 / 2,7,3,8,9, đầu ra là:
7,8,9
21,24,27
72Tự làm thử
let minVal = Int(readLine()!)!
let scale = Int(readLine()!)!
let nums = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: viết makeFilter / makeScaler trả về các hàm đóng (closure); pipeline(_:filter:transform:);
// sau đó in ra các giá trị đã lọc, đã nhân với scale và tổng của các giá trị đã nhân với scale
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ịch8Closure
Closure cơ bảnTrailing closureBắt giữ giá trịTrả về closureTùy chỉnh hàm bậc caoÔn tập: xây dựng pipelineTự luyện tập: Playground Swift