สรุป The Rust Programming Language ฉบับมือเก่า ตอนที่ 2
1 min readDec 4, 2024
บทความนี้สรุปจากหนังสือ The Rust Programming Language chapter 2 ด้วยความคิดเห็นของผมเอง อาจมีการตีความที่มีโอกาสผิดพลาดได้ ทางที่ดีถ้าอยากได้ reference จริงๆแนะนำต้นทางครับ
โอเค Chapter นี้คือเค้าจะให้ลองเขียน Guessing Game เล่นๆ พร้อมอธิบายตัวโค้ดไปพลางๆ ซึ่งเค้าอธิบายละเอียดดีมาก แต่บางจุดในมุมมองส่วนตัวของผมมันละเอียดไปหน่อยสำหรับคนที่เขียนโค้ดมาพอสมควรแล้ว (คือเค้าก็ทำถูกแล้วเพราะ audience ของเค้ากว้างมาก) ผมเลยสรุปมาได้ตามนี้
- ตัวเกม logic หลักๆคือ
- สุ่มตัวเลขคำตอบ
- รับ input ให้ user ทายคำตอบ
- ถ้าผิดให้แจ้งว่า input มากกว่าหรือน้อยกว่าคำตอบ แล้วให้ทายคำตอบใหม่
- ถ้าถูกให้แจ้งว่าถูกแล้ว exit
ทีนี้ตัวจุดที่น่าสนใจหลักๆคือ
- function `main()` เป็น special function ที่จะเป็นจุดเริ่มต้นของ program
- random คำตอบโดยใช้ `let secret_number = rand::thread_rng().gen_range(1..=100);` — note that สามารถใช้ range expression (1..=100) ซึ่งหมายความว่า 1 ถึง 100 inclusive
- rand ไม่ได้อยู่ใน prelude และไม่ได้อยู่ใน std package เลยต้องเพิ่ม `rand = “[version]”` ใน Cargo.toml ตรง [dependencies] section เพื่อให้ Cargo pull ตัว library ลงมาให้
- สร้างตัวแปร string ชื่อ guess (by default เป็น immutable แต่มี modifier
mut
ทำให้กลายเป็น mutable variable) ไปรับ input ผ่าน stdin().read_line(&mut guess), `&mut` เป็น modifier ที่บอกว่า ref ที่ส่งไป mutable - Parse
guess
เป็น u32 (unsigned int 32-bit) ให้ type ตรงกับsecret_number
ที่เราจะเอาไป compare ในขั้นตอนถัดไป - compare ถ้าไม่ถูกให้แจ้งว่ามากหรือน้อยไป แล้ว loop ถามไปเรื่อยๆ แต่ถ้าถูกก็ให้แจ้งว่า you win แล้ว break loop ไป
ด้านล่างคือรูปปลากรอบ + คำอธิบาย
จบแล้วครับบทที่ 2 ฉบับขี้เกียจโคตรๆ 55