Rust:
การใช้แอเรย์สมาชิก
วิธีการ:
ใน Rust, ประเภท HashMap
จากโมดูล std::collections
มอบความสามารถของแอสโซซิเอทีฟอาร์เรย์ นี่คือวิธีที่คุณสามารถทำงานกับพวกมันได้:
use std::collections::HashMap;
fn main() {
// การสร้าง HashMap ใหม่
let mut scores = HashMap::new();
// การแทรกค่า
scores.insert(String::from("Blue"), 10);
scores.insert(String::from("Yellow"), 50);
// การเข้าถึงค่า
let team_name = String::from("Blue");
if let Some(score) = scores.get(&team_name) {
println!("คะแนนของทีม Blue: {}", score); // ผลลัพธ์: คะแนนของทีม Blue: 10
}
// การอัปเดตค่า
scores.entry(String::from("Blue")).and_modify(|e| *e += 5);
// การวนลูปผ่านคู่ของคีย์-ค่า
for (key, value) in &scores {
println!("{}: {}", key, value); // ผลลัพธ์: Blue: 15, Yellow: 50
}
}
ศึกษาลึกลงไป
HashMap
ใน Rust ใช้ฟังก์ชันการแฮชเพื่อแม็ปคีย์ไปยังค่า ซึ่งช่วยให้สามารถดึงข้อมูลได้อย่างรวดเร็ว อย่างไรก็ตาม ความสามารถนี้มาพร้อมกับต้นทุน: hash maps ไม่รักษาลำดับขององค์ประกอบ นั่นเป็นการต่างจากการใช้งานแอสโซซิเอทีฟอาร์เรย์ในภาษาอื่นๆ เช่น Python (dict
) หรือ Ruby ซึ่งในเวอร์ชันล่าสุดรักษาลำดับของการแทรกเป็นคุณสมบัติพิเศษ สำหรับกรณีที่ลำดับของคู่คีย์-ค่ามีความสำคัญ นักพัฒนาใน Rust อาจพิจารณาใช้ BTreeMap
จากโมดูล std::collections
ซึ่งรักษาลำดับได้ แต่อาจมีความช้าในการแทรกและดึงข้อมูลเมื่อเทียบกับ HashMap
ในท้ายที่สุด การเลือกใช้ระหว่าง HashMap
กับ BTreeMap
ขึ้นอยู่กับความต้องการเฉพาะด้านลำดับและประสิทธิภาพ