ภาษาโปรแกรมมิง Rust: เริ่มต้นกับ Rust สำหรับมือใหม่
เผยแพร่เมื่อ: 25 กันยายน 2025 | หมวดหมู่: Rust | โดย: GlowCode Team

Rust คืออะไร?
Rust เป็นภาษาโปรแกรมมิงระบบสมัยใหม่ที่เน้นความปลอดภัย ความเร็ว และคอนเคอร์เรนซี่ สร้างโดย Graydon Hoare ที่ Mozilla ปี 2010 เวอร์ชันแรกออกปี 2015
Ruby มีจุดเด่นดังนี้:
- ปลอดภัย: โมเดล ownership ช่วยกำจัด data race และการเข้าถึงหน่วยความจำที่ไม่ถูกต้อง
- เร็ว: ประสิทธิภาพเทียบเท่า C/C++ ด้วย abstractions ที่ไม่มีค่าใช้จ่ายเพิ่ม
- คอนเคอร์เรนต์: รองรับมัลติเธรดแบบปลอดภัยในตัว
- สมัยใหม่: ระบบชนิดข้อมูลที่แข็งแกร่ง การจับคู่แพตเทิร์น และไม่มี null pointers
- ข้ามแพลตฟอร์ม: คอมไพล์เป็นโค้ดเนทีฟสำหรับสถาปัตยกรรมต่างๆ
เกร็ดสนุก: Rust ได้แรงบันดาลใจจากภาษาอย่าง C++, OCaml และ Haskell มาสคอตของมันคือ Ferris ปู เพราะ “ไม่มี segfaults” (ปูไม่มี fault… เข้าใจมุกมั้ย?)
ทำไมต้องเรียน Rust?
Rust กำลังฮิตขึ้นเพราะมันแก้ปัญหาจริงๆ ในโลกการพัฒนาซอฟต์แวร์ นี่คือเหตุผลที่มันคุ้มค่ากับเวลาของคุณ:
- สอนการจัดการหน่วยความจำแบบปลอดภัยโดยไม่ต้องใช้ garbage collector
- ช่วยเข้าใจคอนเคอร์เรนซี่โดยไม่กลัวบั๊ก
- สร้างทักษะสำหรับการเขียนโปรแกรมระดับต่ำแบบไฮเลเวล
2. ความต้องการในตลาดงาน
- ระบบและฝังตัว: ใช้ในเคอร์เนล OS, เบราว์เซอร์ (Firefox) และ IoT
- เว็บและเซิร์ฟเวอร์: เฟรมเวิร์กอย่าง Actix และ Rocket สำหรับแอปประสิทธิภาพสูง
- บล็อกเชนและคริปโต: Solana และ Polkadot สร้างด้วย Rust
- ตำแหน่งงานที่บริษัทอย่าง Mozilla, AWS, Microsoft และ Discord
- ไม่มีโอเวอร์เฮดตอนรันไทม์: คอมไพล์เป็นไบนารีที่มีประสิทธิภาพ
- อีโคซิสเต็มที่เติบโต: Crates (ไลบรารี) ผ่าน Cargo ผู้จัดการแพ็กเกจ
- ชุมชนที่ช่วยเหลือดี: เอกสารเจ๋งๆ และเครื่องมือสำหรับมือใหม่
ติดตั้งสภาพแวดล้อม
เพื่อเริ่มต้น ให้ติดตั้ง Rust ด้วย rustup ซึ่งเป็นตัวติดตั้งอย่างเป็นทางการ
Windows
- Go to https://www.rust-lang.org/tools/install
- Download rustup-init.exe
- Run it and follow the instructions (it will add it to your PATH).
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
ทดสอบการติดตั้ง
rustc --version
# ผลลัพธ์ที่คาดหวัง (ณ ปี 2025)
rustc 1.85.0 (2025-05-23)
# ตรวจสอบ Cargo (ผู้จัดการแพ็กเก
จ) cargo --version
เคล็ดลับ: เคล็ดลับ: Rustup จัดการเวอร์ชันให้ รัน rustup update เพื่ออัปเดตให้ล่าสุด
โปรแกรม Rust แรกของคุณ
fn main() {
println!("Hello, World!");
println!("Hello, Rust!");
}
- บันทึกเป็น main.rs
- เปิดเทอร์มินัล
- คอมไพล์และรัน: cargo run (หรือ rustc main.rs แล้ว ./main)
println!("Hello, World!"); // แมโครสำหรับพิมพ์พร้อมบรรทัดใหม่
}
ไวยากรณ์พื้นฐาน
/* คอมเมนต์
หลายบรรทัด */
use std::io; // นำเข้าโมดูล
static GLOBAL: i32 = 100; // ค่าคงที่ระดับโกลบอล
fn helper() {
println!("Hello from helper");
}
fn main() {
let local = 50;
println!("{}", GLOBAL + local);
helper();
}
- ประโยคคำสั่งจบด้วยเซมิโคลอน
- ใช้ {} สำหรับบล็อก
- แยกแยะตัวพิมพ์ใหญ่-เล็ก
- ชื่อตัวแปรเริ่มด้วยตัวอักษรหรือขีดล่าง
- คีย์เวิร์ด (เช่น fn, let) ไม่สามารถใช้เป็นชื่อตัวแปร
- การเยื้องเป็นธรรมเนียม (4 ช่องว่าง)
ประเภทข้อมูล
Rust เป็นภาษาที่มีชนิดข้อมูลเข้มงวดแต่สามารถอนุมานได้:
1. ประเภทสเกลาร์
let i: i32 = 42; // จำนวนเต็มมีเครื่องหมาย
let u: u32 = 100; // จำนวนเต็มไม่มีเครื่องหมาย
let f: f64 = 3.14; // ทศนิยม
let b: bool = true;
let c: char = 'A';
println!("{} {} {} {} {}", i, u, f, b, c);
}
let tuple: (i32, f64, char) = (42, 3.14, 'A');
println!("{:?}", tuple);
let array: [i32; 3] = [1, 2, 3];
println!("{:?}", array);
}
3. ตรวจสอบชนิด
let x: i32 = 42;
println!("{}", std::any::type_name::
}
ตัวแปร
ตัวแปรใน Rust เป็น immutable โดยค่าเริ่มต้น:
let age: i32 = 25;
let mut height: f64 = 175.5; // mutable
height = 176.0;
println!("{} {}", age, height);
}
fn example() {
let local = 50;
println!("{}", GLOBAL + local);
}
fn main() {
let main_local = 25;
example();
}
ตัวดำเนินการ
Rust มีตัวดำเนินการมาตรฐาน:
let a = 10;
let b = 3;
println!("{} {} {} {} {} {:.2}", a+b, a-b, a*b, a/b, a%b, a as f64 / b as f64);
}
let x = 5;
let y = 10;
println!("{} {} {} {} {} {}", x==y, x!=y, x
}
let p = true;
let q = false;
println!("{} {} {}", p&&q, p||q, !p);
}
รับและแสดงผลลัพธ์
fn main() {
let age = 25;
let height = 175.5;
println!("Age: {}\nHeight: {}", age, height);
}
fn main() {
let mut name = String::new();
println!("Name: ");
io::stdin().read_line(&mut name).unwrap();
let name = name.trim();
println!("Hello {}", name);
}
คำเตือน: สำหรับมือใหม่ ใช้ .unwrap() จัดการข้อผิดพลาด แต่ในงานจริงใช้ match น
โครงสร้างควบคุม
let score = 85;
if score >= 90 {
println!("A");
} else if score >= 80 {
println!("B");
} else {
println!("C");
}
}
for i in 1..=5 {
println!("{}", i);
}
let mut count = 0;
while count < 5 {
println!("{}", count);
count += 1;
}
}
ฟังก์ชัน
format!("Hello, {}!", name)
}
fn main() {
println!("{}", greet("Alice"));
}
พื้นฐานการทำงานแบบคอนเคอร์เรนซี่
Rust เด่นเรื่องคอนเคอร์เรนซี่ที่ปลอดภัย:
fn main() {
let handle = thread::spawn(|| {
println!("Thread running");
});
println!("Main running");
handle.join().unwrap();
}
ขั้นตอนต่อไป
- Ownership และ Borrowing
- Structs และ Enums
- Traits และ Generics
- Error Handling
- Modules และ Crates
- Collections (Vec, HashMap)
- Threads และ Channels
- Async กับ Tokio
- Testing
- Cargo Workspaces
เคล็ดลับการเรียน:
- ฝึกทุกวันด้วยโปรแกรมเล็กๆ
- ใช้ Rust Playground สำหรับทดลองเร็วๆ
- อ่าน “The Rust Book” ที่ doc.rust-lang.org
- เข้าร่วม r/rust บน Reddit หรือฟอรัม Rust
- สร้างโปรเจกต์อย่าง CLI tools

