0Pricing
Learn Rust Coding · บทเรียน

การใช้ดัชนีและการวนซ้ำ

เข้าถึงและวนซ้ำผ่านสมาชิก

การใช้ดัชนีและการวนซ้ำ เป็นบทเรียน Learn Rust Coding ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn Rust Coding และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน

การอ่านด้วยดัชนี

สมาชิกแต่ละตัวในเวกเตอร์มีหมายเลขตำแหน่งที่เรียกว่าดัชนี ดัชนีเริ่มต้นที่ 0 ดังนั้นสมาชิกตัวแรกจึงมีดัชนีเป็น 0

อ่านสมาชิกด้วยวงเล็บเหลี่ยม เช่น v[0] สำหรับค่าตัวแรก

fn main() {
    let v = vec![100, 200, 300];
    println!("first = {}", v[0]);
    println!("third = {}", v[2]);
}

ข้อผิดพลาดเมื่ออยู่นอกขอบเขต

การใช้ดัชนีเลยท้ายเวกเตอร์จะทำให้โปรแกรมเกิดข้อผิดพลาดร้ายแรงและหยุดทำงาน หากเวกเตอร์มีความยาว 3 ดัชนีที่ถูกต้องมีเพียง 0, 1 และ 2

การขอค่า v[5] ในที่นี้จะทำให้โปรแกรมหยุดทำงาน ดังนั้นควรตรวจสอบให้ดัชนีอยู่ในช่วงเสมอ

การเข้าถึงอย่างปลอดภัยด้วย get

เมธอด get จะคืนค่า Option แทนการทำให้โปรแกรมเกิดข้อผิดพลาดร้ายแรง หากมีดัชนีนั้นอยู่ คุณจะได้ Some(value) แต่ถ้าอยู่นอกช่วงจะได้ None

วิธีนี้ช่วยให้คุณจัดการกับสมาชิกที่ไม่มีอยู่ได้อย่างเหมาะสม

fn main() {
    let v = vec![1, 2, 3];
    match v.get(5) {
        Some(x) => println!("got {}", x),
        None => println!("no such index"),
    }
}

จำนวนสมาชิก

เมธอด len จะบอกจำนวนสมาชิก ดัชนีที่ถูกต้องตัวสุดท้ายคือ len - 1 เสมอ

การทราบความยาวช่วยให้คุณวนลูปได้อย่างปลอดภัยหรือตรวจสอบขอบเขตก่อนใช้ดัชนี

fn main() {
    let v = vec![5, 6, 7, 8];
    println!("length = {}", v.len());
    println!("last = {}", v[v.len() - 1]);
}

การวนลูปผ่านค่า

วิธีที่สะอาดที่สุดในการเข้าถึงสมาชิกทุกตัวคือใช้ลูป for กับการอ้างอิงไปยังเวกเตอร์ การใช้ &v จะยืมเวกเตอร์ไว้ ทำให้ยังใช้งานเวกเตอร์ต่อได้ภายหลัง

ในการวนแต่ละรอบ n จะผูกไว้กับการอ้างอิงของสมาชิกหนึ่งตัว

fn main() {
    let v = vec![2, 4, 6];
    for n in &v {
        println!("value: {}", n);
    }
}

การวนลูปพร้อมดัชนี

เมื่อคุณต้องการทราบตำแหน่งด้วย ให้เรียกใช้ iter().enumerate() ซึ่งจะให้คู่ค่า (index, value) ในแต่ละรอบ

วิธีนี้เหมาะอย่างยิ่งสำหรับผลลัพธ์ที่มีหมายเลขหรือกฎที่ขึ้นอยู่กับตำแหน่ง

fn main() {
    let v = vec!["a", "b", "c"];
    for (i, item) in v.iter().enumerate() {
        println!("{}: {}", i, item);
    }
}

การเปลี่ยนแปลงสมาชิกแต่ละตัว

หากต้องการแก้ไขค่าโดยตรง ให้ใช้ลูปกับ &mut v และเวกเตอร์ต้องเป็น mut แต่ละ n จะเป็นการอ้างอิงที่แก้ไขได้ ดังนั้นคุณต้องใช้ * เพื่อยกเลิกการอ้างอิงก่อนกำหนดค่า

ในที่นี้สมาชิกทุกตัวจะถูกคูณด้วยสอง

fn main() {
    let mut v = vec![1, 2, 3];
    for n in &mut v {
        *n *= 2;
    }
    println!("{:?}", v);
}

การหาผลรวมของ Vector

ตัววนซ้ำช่วยให้การคำนวณเป็นเรื่องง่าย เมธอด iter().sum() จะบวกสมาชิกทั้งหมดเข้าด้วยกัน

Rust จำเป็นต้องทราบชนิดของผลลัพธ์ ดังนั้นเราจึงระบุชนิดของผลรวมเป็น i32

fn main() {
    let v = vec![10, 20, 30];
    let total: i32 = v.iter().sum();
    println!("sum = {}", total);
}

สมาชิกตัวแรกและตัวสุดท้าย

เมธอด first() และ last() จะคืนค่าการอ้างอิงแบบ Option ไปยังสมาชิกที่ปลายทั้งสองของเวกเตอร์ หากเวกเตอร์ว่าง เมธอดเหล่านี้จะคืนค่า None

การใช้เมธอดเหล่านี้ช่วยหลีกเลี่ยงการคำนวณดัชนีด้วยตนเองและข้อผิดพลาดจากการเข้าถึงนอกช่วง

fn main() {
    let v = vec![7, 8, 9];
    println!("{:?}", v.first());
    println!("{:?}", v.last());
}

การค้นหาด้วย contains

หากต้องการตรวจสอบว่ามีค่าหนึ่งอยู่หรือไม่ ให้ใช้ contains เมธอดนี้รับการอ้างอิงไปยังค่าและคืนค่า bool

เมธอดนี้จะค้นหาไปทั่วเวกเตอร์ จึงเป็นวิธีที่รวดเร็วในการตรวจสอบการมีอยู่ของสมาชิก

fn main() {
    let v = vec![3, 6, 9];
    println!("has 6? {}", v.contains(&6));
    println!("has 5? {}", v.contains(&5));
}

การตัดช่วงข้อมูล

สไลซ์จะยืมบางส่วนของเวกเตอร์โดยใช้ช่วง เช่น &v[1..3] จุดเริ่มต้นจะถูกรวมไว้ แต่จุดสิ้นสุดจะไม่ถูกรวม

สไลซ์ช่วยให้คุณทำงานกับช่วงของสมาชิกได้โดยไม่ต้องคัดลอกข้อมูล

fn main() {
    let v = vec![10, 20, 30, 40];
    let middle = &v[1..3];
    println!("{:?}", middle);
}

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจเกี่ยวกับการใช้ดัชนีและตัววนซ้ำ

สรุปทบทวน

คุณได้อ่านสมาชิกด้วยดัชนี เข้าถึงสมาชิกอย่างปลอดภัยด้วย get และวนลูปด้วย for, enumerate และ &mut

คุณยังได้ใช้ sum, first, last, contains และสไลซ์ ต่อไปคุณจะเรียนรู้การเพิ่มและลดขนาดเวกเตอร์

คำถามที่พบบ่อย

บทเรียน “การใช้ดัชนีและการวนซ้ำ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การใช้ดัชนีและการวนซ้ำ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn Rust Coding ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การใช้ดัชนีและการวนซ้ำ”

เข้าถึงและวนซ้ำผ่านสมาชิก คุณปฏิบัติ Learn Rust Coding ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn Rust Coding หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn Rust Coding บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การใช้ดัชนีและการวนซ้ำ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn Rust Coding นี้ได้ไหม

ได้ บทเรียน Learn Rust Coding ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สร้างและเติมเวกเตอร์
  2. การใช้ดัชนีและการวนซ้ำ
  3. การขยายและลดขนาด
  4. เวกเตอร์ของ struct
← กลับไปที่ Learn Rust Coding