Latihan 1: Smart Pointers — Rust

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

Satu data, beberapa pemilik: hitung pemiliknya dengan Rc. Kali ini datanya teks hypersheets. Editor sudah berisi use std::rc::Rc;, let data = Rc::new(String::from("hypersheets"));, dan println!("{}", Rc::strong_count(&data));, yang mencetak 1. Biarkan semuanya, lalu di bawahnya:

  1. Tambah pemilik kedua dengan let kedua = Rc::clone(&data);, lalu cetak lagi println!("{}", Rc::strong_count(&data));.
  2. Tambah pemilik ketiga dengan let ketiga = Rc::clone(&data);, lalu cetak println!("{}", Rc::strong_count(&data)); sekali lagi.
  3. Cetak isinya lewat pemilik ketiga: println!("{}", ketiga);. Teksnya gak disalin; ketiga menunjuk data yang sama.
  4. Klik Jalankan.

Output-nya, empat baris:

1
2
3
hypersheets

Yang diperiksa: baris pertama sampai keempat persis 1, 2, 3, dan hypersheets; kode-mu memakai Rc::clone; dan angkanya dicetak dengan println!("{}", Rc::strong_count(&data)), bukan diketik sendiri. Di cargo sungguhan, kedua yang gak dipakai lagi memberi warning unused variable; programnya tetap jalan (nama _kedua membuatnya diam).

Hint