Ringkasan Struct
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 21 dari 66.
Sekarang setelah kamu memahami apa itu struct, mari pelajari cara membuat dan menggunakannya. Ada dua langkah: pertama, menentukan struktur struct, lalu membuat instance-nya.
Untuk mendefinisikan struct, kamu menggunakan kata kunci struct, diikuti nama struct dan field-fieldnya di dalam kurung kurawal. Setiap field memiliki nama dan tipe:
struct User {
username: String,
active: bool,
}Ini membuat cetak biru untuk struct User dengan dua field: username bertipe String dan active bertipe bool.
Konvensi penamaan: Nama struct di Rust sebaiknya menggunakan PascalCase (juga disebut UpperCamelCase), artinya setiap kata diawali dengan huruf kapital, misalnya User, ProductItem, atau ShoppingCart. Rust akan memberi peringatan jika kamu tidak mengikuti konvensi ini.
Setelah mendefinisikan struct, kamu bisa membuat instance-nya dengan menentukan nilai untuk setiap field:
let user1 = User {
username: String::from("alice"),
active: true,
};Perhatikan bahwa kamu menuliskan nama struct, diikuti kurung kurawal yang berisi setiap nama field, titik dua, dan nilainya. Urutan field tidak harus sesuai dengan urutan definisinya.
Untuk mengakses field dari instance struct, gunakan notasi titik: tulis nama instance, lalu titik dan nama field:
println!("Username: {}", user1.username);
println!("Active: {}", user1.active);Di sini, user1.username mengakses field username dari user1, dan user1.active mengakses field active. Kamu bisa menggunakan nilai field ini di mana pun kamu akan menggunakan variabel biasa.
Tantangan
MudahKamu akan menerima tiga input: nama produk, harga (sebagai angka desimal), dan jumlah stok (sebagai bilangan bulat). Definisikan struct Product dengan tiga field: name bertipe String, price bertipe f64, dan stock bertipe i32. Lalu, buat instance struct ini menggunakan nilai input dan cetak informasi produk.
Persyaratan:
- Definisikan struct
Productdengan field:name: String,price: f64, danstock: i32 - Baca input pertama sebagai nama produk
- Baca input kedua dan ubah menjadi
f64untuk harga - Baca input ketiga dan ubah menjadi
i32untuk jumlah stok - Buat instance struct
Productdengan nilai-nilai ini - Cetak informasi produk dalam format persis seperti yang ditunjukkan di bawah
Input:
- Baris pertama: Nama produk (misalnya,
Laptop) - Baris kedua: Harga sebagai angka desimal (misalnya,
999.99) - Baris ketiga: Jumlah stok sebagai bilangan bulat (misalnya,
15)
Output:
- Baris pertama:
Product: [name] - Baris kedua:
Price: $[price] - Baris ketiga:
Stock: [quantity]
Coba sendiri
use std::io;
// TODO: Definisikan struct Product-mu di sini
fn main() {
// Baca nama produk
let mut name = String::new();
io::stdin().read_line(&mut name).expect("Failed to read line");
let name = name.trim().to_string();
// Baca harga
let mut price_input = String::new();
io::stdin().read_line(&mut price_input).expect("Failed to read line");
let price: f64 = price_input.trim().parse().expect("Failed to parse price");
// Baca jumlah stok
let mut stock_input = String::new();
io::stdin().read_line(&mut stock_input).expect("Failed to read line");
let stock: i32 = stock_input.trim().parse().expect("Failed to parse stock");
// TODO: Buat instance struct Product menggunakan nilai input
// TODO: Cetak informasi produk dalam format yang diminta
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Alur Kontrol Lanjutan
Ekspresi 'match'Mencocokkan Beberapa NilaiMencocokkan RentangEkspresi 'if let'Perulangan sebagai EkspresiRangkuman, Parser Perintah Sederhana4Mengelompokkan Data dengan Struct
Apa Itu Struct?Ringkasan StructMengakses Field StructStruct yang Dapat DiubahStruct sebagai Parameter FungsiStruct TupleRangkuman: Buat Struct Buku2Pengantar Vektor
Apa Itu Vektor?Membuat VektorMenambahkan Elemen dengan pushMengakses Elemen VektorMelakukan Iterasi pada VektorIterasi MutableMenghapus ElemenRangkuman: Pelacak Skor Dasar5Pasangan Kunci-Nilai dengan Hash Map
Apa Itu Hash Map?Membuat Hash MapMenyisipkan Pasangan Kunci-NilaiMengakses NilaiMenelusuri Hash MapMemperbarui NilaiMenghapus PasanganRangkuman: Penghitung Kata8Proyek: Inventaris Barang Sederhana
Menyiapkan ProyekMenambahkan BarangMemeriksa StokMenjual BarangMenyatukan Semuanya3Daftar Tugas Baris Perintah
Penyiapan ProyekMenambahkan TugasMelihat Semua TugasMenghapus TugasKode AkhirLatihan sendiri: Compiler Rust online