Menu
CoddyTech

Potongan Lainnya

Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 57 dari 66.

Meskipun slice string sangat berguna, slicing tidak terbatas pada string saja. Konsep slice di Rust berlaku untuk urutan elemen apa pun, sehingga menjadi alat yang ampuh untuk bekerja dengan koleksi tanpa mengambil kepemilikan.

Kamu bisa membuat slice dari array dan vector menggunakan sintaks yang sama seperti yang kamu pelajari untuk string. Misalnya, jika kamu memiliki array angka, kamu bisa membuat slice yang merujuk ke sebagian atau seluruh array tersebut:

let numbers = [1, 2, 3, 4, 5];
let slice: &[i32] = &numbers[1..4]; // Ini menghasilkan [2, 3, 4]
let full_slice: &[i32] = &numbers;  // Ini merujuk ke seluruh array

Prinsip yang sama berlaku untuk vektor. Kamu bisa membuat slice dari vektor untuk menggunakan sebagian data tanpa memindahkan atau menyalinnya:

let mut vec = vec![10, 20, 30, 40];
let vec_slice: &[i32] = &vec[0..2]; // Ini menghasilkan [10, 20]
challenge icon

Tantangan

Mudah

Kamu akan menerima tiga input. Input pertama adalah list angka yang dipisahkan dengan koma. Input kedua adalah dua angka yang dipisahkan dengan spasi, yang mewakili indeks awal dan akhir untuk membuat slice. Input ketiga adalah satu angka yang mewakili indeks untuk mengakses elemen dari slice.

Buat vector dari angka yang dipisahkan dengan koma, lalu buat slice menggunakan rentang yang ditentukan. Akses elemen pada indeks yang diberikan dari slice, lalu cetak elemen tersebut.

Persyaratan:

  • Baca input pertama (angka yang dipisahkan dengan koma), lalu pangkas whitespace
  • Pisahkan input berdasarkan koma dan parse setiap angka menjadi i32
  • Buat vector dari angka-angka tersebut
  • Baca input kedua (dua angka yang dipisahkan dengan spasi), lalu pangkas whitespace
  • Pisahkan input kedua berdasarkan spasi untuk mendapatkan indeks awal dan akhir
  • Parse kedua indeks menjadi usize
  • Buat slice dari vector menggunakan sintaks rentang &vec[start..end]
  • Baca input ketiga (indeks yang akan diakses), lalu pangkas whitespace
  • Parse indeks menjadi usize
  • Akses elemen pada indeks yang ditentukan dari slice
  • Cetak elemen yang diakses

Input:

  • Baris pertama: Angka yang dipisahkan dengan koma (misalnya, 10,20,30,40,50)
  • Baris kedua: Dua angka yang dipisahkan dengan spasi (misalnya, 1 4)
  • Baris ketiga: Angka indeks (misalnya, 2)

Output:

  • Elemen pada indeks yang ditentukan dari slice

Coba sendiri

use std::io::{self, BufRead};

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Baca input pertama (angka-angka yang dipisahkan koma)
    let first_input = lines.next().unwrap().unwrap();
    
    // Baca input kedua (indeks awal dan akhir)
    let second_input = lines.next().unwrap().unwrap();
    
    // Baca input ketiga (indeks yang akan diakses)
    let third_input = lines.next().unwrap().unwrap();
    
    // TODO: Tulis kodemu di bawah ini
    // Uraikan angka-angka yang dipisahkan koma dan buat vector
    // Uraikan indeks awal dan akhir
    // Buat slice dari vector
    // Akses elemen pada indeks yang ditentukan dari slice
    
    // Cetak hasilnya
    // println!("{}", result);
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Rust online