การใช้ดัชนีและการวนซ้ำ
เข้าถึงและวนซ้ำผ่านสมาชิก
การใช้ดัชนีและการวนซ้ำ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สร้างและเติมเวกเตอร์
- การใช้ดัชนีและการวนซ้ำ
- การขยายและลดขนาด
- เวกเตอร์ของ struct