Belajar Pengaturcaraan Rust · Pelajaran

Mencipta dan Mengisi Vektor

Bina Vec dan tolak item.

Pelajaran 1 daripada 413 langkah

Mencipta dan Mengisi Vektor ialah pelajaran Belajar Pengaturcaraan Rust percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Belajar Pengaturcaraan Rust, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Belajar Pengaturcaraan Rust merangkumi sejumlah 4 pelajaran.

Apakah Vektor?

Vektor ialah senarai nilai yang boleh berkembang, dan semuanya daripada jenis yang sama. Berbeza daripada tatasusunan bersaiz tetap, vektor boleh mengecil atau berkembang semasa program anda berjalan.

Dalam Rust, jenisnya ditulis sebagai Vec<T>, dengan T ialah jenis elemen yang disimpan, seperti Vec<i32> untuk integer.

Vektor Kosong

Anda boleh mencipta vektor kosong baharu dengan Vec::new(). Oleh sebab ia belum mempunyai nilai, Rust tidak dapat meneka jenis elemennya, jadi biasanya anda perlu membuat anotasi.

Di sini kita memberitahu Rust bahawa vektor ini akan menyimpan integer i32.

fn main() {
    let v: Vec<i32> = Vec::new();
    println!("len = {}", v.len());
}

Makro vec!

Cara terpantas untuk mencipta vektor dengan nilai permulaan ialah makro vec!. Senaraikan nilai di dalam kurungan siku.

Rust melihat nilai tersebut untuk membuat kesimpulan tentang jenis elemen, jadi anotasi tidak diperlukan di sini.

fn main() {
    let nums = vec![10, 20, 30];
    println!("{:?}", nums);
}

Mencetak Vektor

Keseluruhan vektor dicetak dengan pemformat penyahpepijatan {:?}, bukannya {} biasa. Bentuk penyahpepijatan memaparkan nilai di dalam kurungan siku.

Gunakan {:#?} untuk susun atur berbilang baris yang lebih kemas apabila vektor itu besar.

fn main() {
    let names = vec!["Ann", "Bo", "Cy"];
    println!("{:?}", names);
}

Menolak Nilai

Untuk menambah nilai pada penghujung vektor, panggil push. Vektor itu mesti diisytiharkan sebagai mut kerana tindakan menolak mengubahnya.

Setiap push menambah satu item, lalu panjang bertambah satu.

fn main() {
    let mut v = Vec::new();
    v.push(1);
    v.push(2);
    v.push(3);
    println!("{:?}", v);
}

Jenis daripada Tolakan Pertama

Apabila anda bermula dengan Vec::new() tanpa anotasi, Rust menunggu push pertama untuk mengetahui jenis elemen.

Di bawah, tindakan menolak 3.5 memberitahu Rust bahawa ini ialah Vec<f64>. Semua nilai seterusnya mesti sepadan dengan jenis tersebut.

fn main() {
    let mut prices = Vec::new();
    prices.push(3.5);
    prices.push(9.0);
    println!("{:?}", prices);
}

Mengisi dengan Ulangan

Makro vec! boleh mengulangi sesuatu nilai. Tulis vec![value; count] untuk membina vektor yang mengandungi nilai tersebut diulang sebanyak count kali.

Ini berguna untuk menyediakan senarai sifar atau nilai lalai.

fn main() {
    let zeros = vec![0; 5];
    println!("{:?}", zeros);
}

Mengisi dalam Gelung

Anda boleh mengisi vektor dengan menolak nilai dari dalam gelung. Di sini kita menambah kuasa dua nombor 1 hingga 4.

Memulakan dengan vektor kosong dan menolak nilai semasa proses berjalan ialah corak yang biasa apabila nilai dikira.

fn main() {
    let mut squares = Vec::new();
    for n in 1..=4 {
        squares.push(n * n);
    }
    println!("{:?}", squares);
}

Kapasiti berbanding Panjang

Panjang ialah bilangan item yang disimpan oleh vektor pada masa ini. Kapasiti ialah jumlah ruang yang telah ditempah sebelum vektor itu perlu mengembangkan memorinya.

Jika anda tahu secara anggaran berapa banyak item yang akan ditambah, Vec::with_capacity(n) menempah ruang dari awal dan mengelakkan peruntukan semula berulang.

fn main() {
    let mut v = Vec::with_capacity(10);
    v.push(1);
    println!("len {}, cap {}", v.len(), v.capacity());
}

Daripada Tatasusunan

Anda boleh menukar tatasusunan kepada vektor. Salah satu cara mudah ialah .to_vec(), yang menyalin elemen tatasusunan ke dalam vektor milikan baharu.

Ini berguna apabila anda bermula dengan data tetap tetapi memerlukannya berkembang kemudian.

fn main() {
    let arr = [1, 2, 3];
    let v = arr.to_vec();
    println!("{:?}", v);
}

Menyemak Sama Ada Kosong

Gunakan is_empty() untuk menyemak sama ada vektor tidak mempunyai elemen. Ia mengembalikan bool, yang lebih jelas berbanding membandingkan panjang dengan sifar.

Ini ialah pengawal yang baik sebelum membaca elemen pertama.

fn main() {
    let v: Vec<i32> = Vec::new();
    if v.is_empty() {
        println!("nothing here yet");
    }
}

Semakan Pantas

Uji pemahaman anda tentang mencipta dan mengisi vektor.

Ulang Kaji

Anda telah mempelajari cara mencipta vektor dengan Vec::new() dan makro vec!, serta mengisinya menggunakan push, ulangan, gelung dan to_vec().

Anda juga telah melihat perbezaan antara panjang dan kapasiti serta cara menyemak sama ada vektor kosong. Seterusnya, anda akan membaca dan menggelung melalui nilai vektor.

Percuma untuk bermula

Pelajari Rust dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
39
Pelajaran
144

Soalan Lazim

Adakah pelajaran “Mencipta dan Mengisi Vektor” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Belajar Pengaturcaraan Rust, termasuk “Mencipta dan Mengisi Vektor”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Belajar Pengaturcaraan Rust merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Mencipta dan Mengisi Vektor”?

Bina Vec dan tolak item. Anda berlatih Belajar Pengaturcaraan Rust menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Belajar Pengaturcaraan Rust?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Belajar Pengaturcaraan Rust di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Mencipta dan Mengisi Vektor” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Belajar Pengaturcaraan Rust ini?

Ya. Setiap pelajaran Belajar Pengaturcaraan Rust menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mencipta dan Mengisi Vektor
  2. Pengindeksan dan Pengulangan
  3. Membesar dan Mengecil
  4. Vektor Struct
← Kembali ke Belajar Pengaturcaraan Rust