Rangkuman, Pembuat Pipeline
Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 43 dari 56.
Tantangan
SedangBuat pipeline data kecil yang digerakkan oleh closure.
Baca tiga baris:
- Bilangan bulat
min - Bilangan bulat
scale - List bilangan bulat yang dipisahkan koma
Definisikan dua pembuat closure:
makeFilter(min: Int) -> (Int) -> Boolmenangkapmindan mengembalikan predikatn > minmakeScaler(by: Int) -> (Int) -> Intmenangkapbydan mengembalikan fungsi yang mengalikannya
Lalu definisikan fungsi pipeline(_ nums: [Int], filter: (Int) -> Bool, transform: (Int) -> Int) -> [Int] yang memfilter terlebih dahulu, lalu mentransformasi.
Cetak tiga baris:
- Angka yang lolos filter, digabungkan dengan
, - Angka yang sama setelah diskalakan, digabungkan dengan
, - Jumlah nilai yang telah diskalakan
Untuk input 5 / 3 / 2,7,3,8,9, outputnya adalah:
7,8,9
21,24,27
72Coba sendiri
let minVal = Int(readLine()!)!
let scale = Int(readLine()!)!
let nums = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: buat makeFilter / makeScaler yang mengembalikan closure; pipeline(_:filter:transform:);
// lalu cetak hasil pemfilteran, hasil penskalaan, dan jumlah hasil penskalaan
Semua pelajaran di Logika dan Alur
1Mendalami string
Jumlah dan indeksHuruf besar, huruf kecil, dan hapus spasiMencari dalam stringMemisahkan dan menggabungkanMengganti substringUlasan: Memeriksa nama pengguna4set
Membuat setGabungan dan IrisanSelisih dan Selisih SimetrisHimpunan Bagian dan Himpunan SupersetRingkasan: Filter Tag7Proyek: Pelacak Kebiasaan
Gambaran Umum ProyekTandai Selesai2Rentang dan Langkah
Rentang Tertutup vs Setengah TerbukaLangkahMetode RentangRentang dalam SwitchRangkuman: Kisi Kalender8Closure
Dasar ClosureTrailing ClosureMenangkap NilaiMengembalikan ClosureHigher-Order KustomRangkuman, Pembuat PipelineLatihan sendiri: Playground Swift