Latihan 1: Closures & Iterators — Rust

Latihan 1 dari materi Closures & Iterators di Rust — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Di dapur ada sepuluh angka, 1 sampai 10. Jumlahkan kuadrat angka-angka genapnya dengan satu rantai iterator. Editor sudah berisi let angka = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];, awal rantai let total: i32 = angka.iter(), dan println!("{}", total);. Biarkan semuanya, lalu lengkapi rantainya di antara angka.iter() dan titik koma:

  1. .filter(|x| *x % 2 == 0) untuk menyisakan angka genap. Di filter, x adalah pinjaman dari pinjaman (&&i32); *x % 2 tetap bisa dihitung. Pola |&&x| x % 2 == 0 juga boleh.
  2. .map(|x| x * x) untuk mengkuadratkan tiap angka yang lolos.
  3. .sum() di paling akhir sebagai consumer. Kalau Editor-mu sudah punya baris .sum();, biarkan ia tetap jadi baris terakhir rantai.
  4. Klik Jalankan.

Hitungannya: 2² + 4² + 6² + 8² + 10² = 4 + 16 + 36 + 64 + 100. Output-nya:

220

Yang diperiksa: output memuat 220; kode-mu memakai .filter( dan .map(; dan angka yang dicetak adalah hasil rantai .sum (lewat total, atau .sum langsung di dalam println!), bukan 220 yang diketik sendiri.

Hint