สรุป The Rust Programming Language ฉบับมือเก่า ตอนที่ 2

Kasama Chenkaow
1 min readDec 4, 2024

--

บทความนี้สรุปจากหนังสือ The Rust Programming Language chapter 2 ด้วยความคิดเห็นของผมเอง อาจมีการตีความที่มีโอกาสผิดพลาดได้ ทางที่ดีถ้าอยากได้ reference จริงๆแนะนำต้นทางครับ

(Link บทความที่แล้ว)

โอเค Chapter นี้คือเค้าจะให้ลองเขียน Guessing Game เล่นๆ พร้อมอธิบายตัวโค้ดไปพลางๆ ซึ่งเค้าอธิบายละเอียดดีมาก แต่บางจุดในมุมมองส่วนตัวของผมมันละเอียดไปหน่อยสำหรับคนที่เขียนโค้ดมาพอสมควรแล้ว (คือเค้าก็ทำถูกแล้วเพราะ audience ของเค้ากว้างมาก) ผมเลยสรุปมาได้ตามนี้

  • ตัวเกม logic หลักๆคือ
  1. สุ่มตัวเลขคำตอบ
  2. รับ input ให้ user ทายคำตอบ
  3. ถ้าผิดให้แจ้งว่า input มากกว่าหรือน้อยกว่าคำตอบ แล้วให้ทายคำตอบใหม่
  4. ถ้าถูกให้แจ้งว่าถูกแล้ว 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

--

--

No responses yet