Mengakses Field Struct
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 22 dari 66.
Setelah membuat instance struct, kamu memerlukan cara untuk mengambil nilai yang tersimpan di dalamnya. Rust menggunakan notasi titik untuk mengakses field individual dalam struct.
Sintaksnya sederhana: kamu menulis nama instance struct, diikuti titik, lalu nama field yang ingin kamu akses:
let product = Product {
name: String::from("Laptop"),
price: 999,
};
println!("Product: {}", product.name);
println!("Price: ${}", product.price);Notasi titik ini berfungsi seperti saat mengakses property dalam bahasa pemrograman lain. Kamu dapat menggunakan nilai yang diakses dalam ekspresi, menetapkannya ke variabel, atau meneruskannya ke fungsi. Nilai tersebut berperilaku sama seperti nilai lain dengan tipe yang sama.
Tantangan
MudahKamu akan menerima tiga input: nama model mobil, tahun mobil (sebagai bilangan bulat), dan jarak tempuhnya (sebagai bilangan bulat). Definisikan struct Car dengan tiga field: model bertipe String, year bertipe i32, dan mileage bertipe i32. Buat instance struct ini menggunakan nilai input, lalu akses dan cetak setiap field.
Persyaratan:
- Definisikan struct
Cardengan field:model: String,year: i32, danmileage: i32 - Baca input pertama sebagai model mobil
- Baca input kedua dan ubah menjadi
i32untuk tahun - Baca input ketiga dan ubah menjadi
i32untuk jarak tempuh - Buat instance struct
Cardengan nilai-nilai ini - Gunakan notasi titik untuk mengakses setiap field dan cetak informasi mobil dengan format persis seperti yang ditunjukkan di bawah
Input:
- Baris pertama: Model mobil (misalnya,
Tesla Model 3) - Baris kedua: Tahun sebagai bilangan bulat (misalnya,
2022) - Baris ketiga: Jarak tempuh sebagai bilangan bulat (misalnya,
15000)
Output:
- Baris pertama:
Car: [model] - Baris kedua:
Year: [year] - Baris ketiga:
Mileage: [mileage] km
Coba sendiri
use std::io;
// TODO: Definisikan struct Car di sini dengan field: model, year, dan mileage
fn main() {
// Baca model mobil
let mut model = String::new();
io::stdin().read_line(&mut model).expect("Failed to read line");
let model = model.trim().to_string();
// Baca tahun
let mut year_input = String::new();
io::stdin().read_line(&mut year_input).expect("Failed to read line");
let year: i32 = year_input.trim().parse().expect("Invalid year");
// Baca jarak tempuh
let mut mileage_input = String::new();
io::stdin().read_line(&mut mileage_input).expect("Failed to read line");
let mileage: i32 = mileage_input.trim().parse().expect("Invalid mileage");
// TODO: Buat instance dari struct Car menggunakan nilai input
// TODO: Akses dan cetak setiap field dalam format yang diminta
// Car: [model]
// Year: [year]
// Mileage: [mileage] km
}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