Rust

Iterators & Closures

Iterator trait, iterator adapters (map, filter, fold), ไวยากรณ์ closure, move closures, Fn traits

22 คำถามสัมภาษณ์·
Mid-Level
1

ชนิดข้อมูลต้องimplement trait ใดจึงจะใช้ในลูป for ใน Rust ได้?

คำตอบ

Trait IntoIterator ช่วยให้ชนิดข้อมูลถูกแปลงเป็น iterator ได้ ลูป for จะเรียก into_iter() บนนิพจน์โดยอัตโนมัติ ชนิดข้อมูลอย่าง Vec, array และ range implement trait นี้โดยปริยาย ทำให้สามารถวนซ้ำผ่านพวกมันได้โดยตรงด้วย for

2

เมธอดใดของ trait Iterator ที่ต้องถูกimplement?

คำตอบ

เมธอด next() เป็นเมธอดเดียวที่จำเป็นต้องมีของ trait Iterator มันคืนค่า Option<Self::Item> ซึ่งเป็น Some(item) ถ้ายังมีองค์ประกอบเหลืออยู่ หรือ None เมื่อการวนซ้ำเสร็จสิ้น เมธอดอื่นทั้งหมดเช่น map, filter หรือ collect มี implementation เริ่มต้นที่อิงกับ next()

3

ความแตกต่างระหว่าง iter(), iter_mut() และ into_iter() บน Vec<T> คืออะไร?

คำตอบ

iter() คืน iterator บน reference แบบ immutable (&T), iter_mut() บน reference แบบ mutable (&mut T), และ into_iter() ใช้ Vec ไปและคืนองค์ประกอบตามค่า (T) การเลือกขึ้นอยู่กับว่าต้องการอ่าน แก้ไข หรือรับ ownership ขององค์ประกอบ

4

lazy iterator ใน Rust คืออะไรและทำไมจึงสำคัญ?

5

ไวยากรณ์ที่ถูกต้องในการนิยาม closure ที่รับพารามิเตอร์ i32 สองตัวและคืนผลรวมของพวกมันคืออะไร?

+19 คำถามสัมภาษณ์

เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี