Struct Tuple
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 25 dari 66.
Meskipun struct biasa menggunakan field bernama, Rust menawarkan tipe lain yang disebut tuple structs. Tipe ini menyediakan cara yang lebih ringkas untuk membuat tipe kustom saat kamu tidak perlu memberi nama pada setiap field satu per satu.
tuple struct menggabungkan manfaat membuat tipe baru dengan kesederhanaan tuple. Kamu mendefinisikannya menggunakan kata kunci struct, diikuti nama tipe dan tipe field di dalam tanda kurung:
struct Color(i32, i32, i32);Ini membuat tipe Color yang menyimpan tiga nilai i32, yang merepresentasikan nilai warna RGB. Berbeda dengan struct biasa, kamu tidak menentukan nama field. Kamu mengakses nilainya berdasarkan posisinya, seperti pada tuple.
Untuk membuat instance dari tuple struct, kamu memberikan nilai di dalam tanda kurung:
let red = Color(255, 0, 0);Kamu dapat mengakses setiap field menggunakan notasi titik dengan indeks field: red.0 memberikan nilai pertama, red.1 memberikan nilai kedua, dan seterusnya.
Tantangan
MudahKamu akan menerima tiga input: nilai merah (sebagai bilangan bulat), nilai hijau (sebagai bilangan bulat), dan nilai biru (sebagai bilangan bulat). Definisikan struct tuple Color yang menyimpan tiga nilai i32 yang mewakili komponen warna RGB. Buat instance struct tuple ini menggunakan nilai input, lalu akses dan cetak setiap komponen warna menggunakan notasi indeks.
Persyaratan:
- Definisikan struct tuple
Colordengan tiga fieldi32 - Baca input pertama dan konversikan ke
i32untuk nilai merah - Baca input kedua dan konversikan ke
i32untuk nilai hijau - Baca input ketiga dan konversikan ke
i32untuk nilai biru - Buat instance struct tuple
Colordengan nilai-nilai ini - Akses setiap field menggunakan notasi titik dengan indeks (0, 1, 2), lalu cetak informasi warna dengan format persis seperti yang ditunjukkan di bawah
Input:
- Baris pertama: Nilai merah sebagai bilangan bulat (misalnya,
255) - Baris kedua: Nilai hijau sebagai bilangan bulat (misalnya,
128) - Baris ketiga: Nilai biru sebagai bilangan bulat (misalnya,
0)
Output:
- Baris pertama:
Red: [red_value] - Baris kedua:
Green: [green_value] - Baris ketiga:
Blue: [blue_value]
Coba sendiri
use std::io;
// TODO: Definisikan struct tuple Color milikmu di sini
fn main() {
// Baca nilai merah
let mut red_input = String::new();
io::stdin().read_line(&mut red_input).expect("Failed to read line");
let red: i32 = red_input.trim().parse().expect("Invalid input");
// Baca nilai hijau
let mut green_input = String::new();
io::stdin().read_line(&mut green_input).expect("Failed to read line");
let green: i32 = green_input.trim().parse().expect("Invalid input");
// Baca nilai biru
let mut blue_input = String::new();
io::stdin().read_line(&mut blue_input).expect("Failed to read line");
let blue: i32 = blue_input.trim().parse().expect("Invalid input");
// TODO: Buat instance struct tuple Color menggunakan nilai input
// TODO: Akses dan cetak setiap komponen warna menggunakan notasi indeks
// Format: Merah: [nilai], Hijau: [nilai], Biru: [nilai]
}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