Latihan 1 dari materi Generics di Rust di Rust — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Editor sudah berisi fungsi terkecil<T: PartialOrd>(list: &[T]) -> &T yang sementara selalu mengembalikan isi paling depan (&list[0]), dan main yang memanggilnya untuk angka (vec![8, 3, 14, 1, 9]) dan huruf (vec!['x', 'a', 'm', 'b']). Biarkan baris fn terkecil<T: PartialOrd>(list: &[T]) -> &T dan seluruh main, lalu isi fungsinya supaya benar-benar mencari isi terkecil:
- Ganti
&list[0] dengan let mut hasil = &list[0];.
- Ulangi tiap isi:
for item in list { ... }.
- Di dalam loop, kalau
item < hasil, ganti hasil = item;.
- Setelah loop, kembalikan
hasil (tanpa titik koma).
- Klik Jalankan.
Output-nya:
1
a
Yang diperiksa: output memuat 1 dan a; kode-mu punya fungsi dengan daftar tipe (fn terkecil<), memakai PartialOrd, dan membandingkan isinya, misalnya item < hasil (atau list[i] < list[idx] kalau kamu mencari lewat indeks); lalu terkecil dipanggil lagi dengan daftar lain: terkecil(&vec![5, 2, 9]) harus mencetak 2, dan terkecil(&vec!['z', 'c', 'q']) harus mencetak c. Syaratnya boleh tetap di dalam kurung sudut, <T: PartialOrd>, atau dipindah ke klausa where setelah tanda tangan fungsi: fn terkecil<T>(list: &[T]) -> &T where T: PartialOrd. Dua-duanya lolos.