Latihan 1: Generics di Rust — Rust

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:

  1. Ganti &list[0] dengan let mut hasil = &list[0];.
  2. Ulangi tiap isi: for item in list { ... }.
  3. Di dalam loop, kalau item < hasil, ganti hasil = item;.
  4. Setelah loop, kembalikan hasil (tanpa titik koma).
  5. 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.

Hint