Skip to content

Learning Rust #1 | เรียนรู้ภาษา Rust

ความตั้งใจของผมคือศึกษาภาษาใหม่ทุกปี เหตุผลมี 2 อย่างคือ

  1. อัปเดตความรู้ตัวเองนอกจากภาษาที่ใช้ทำงานอยู่ก็ควรจะเรียนรู้ภาษาอื่นด้วย
  2. เรียนรู้ว่าภาษานี้ถูกสร้างขึ้นเพราะอะไร แก้ปัญหาอะไร ข้อดี-ข้อเสียมีอะไรบ้าง

สำหรับผมการเรียนรู้ภาษาใหม่ถือเป็นงานอดิเรกที่ชอบนะ ภาษาแปลกๆ ภาษาใหม่ๆ แม้ว่ามันจะไม่เป็นที่นิยมในเมืองไทย มีตำแหน่งงานรองรับ ส่วนตัวผมเองไม่ถือว่าเป็นเรื่องเสียเวลาครับเพราะการได้รู้อะไรหลายอย่างทำให้เรามีตัวเลือกในการแก้ปัญหาเพิ่มขึ้นครับ

การติดตั้ง

ส่วนตัวผมใช้ Linux อยู่ก็ติดตั้งง่ายๆ ผ่าน cURL ได้เลย

ส่วน OS อื่นสามารถโหลดไบนารี่ไปติดตั้งกันเองได้จากลิงก์นี้

https://www.rust-lang.org/downloads.html

ติดตั้งเสร็จถ้าไม่มีปัญหาอะไรก็ควรจะใช้งาน rustc  และ cargo  ได้แล้ว

 

  • rustc คือ compiler ภาษา Rust ใช้ compile โค้ดเป็นไบนารี่ได้
  • cargo คือ package manager ของ Rust เอาไว้ติดตั้ง lib ต่างๆ เหมือน npm  ของ Node.js หรือ pip  ของ Python

เครื่องมือและโครงสร้างโปรเจกต์

การเขียนภาษา Rust เราจะเขียนเป็นไฟล์เดียวแล้วใช้ rustc compile เป็นไบนารี่แล้ว แล้วสั่ง run เลยก็ได้

แต่ถ้าเป็น project ใหญ่ผมแนะนำว่าใช้ cargo ดีกว่าครับ

cargo new  เป็นการสร้างโปรเจกต์ใหม่ตัวอย่างข้างบนชื่อว่า “my-project” ส่วน option --bin  เป็นการบอกว่าเป็น executable project สามารถสั่ง cargo build  และ cargo run  ได้ ถ้าเราไม่ระบุ --bin  จะเป็นการสร้าง project ที่เป็น lib หรือ module ซึ่งเราสามารถ custom ทีหลังได้

เมื่อสั่ง cargo build จะมีไฟล์ Cargo.lock และ Cargo.toml เกิดขึ้นใน project

  • Cargo.toml เป็นไฟล์สำหรับเก็บ config ของโปรเจกต์โดยสามารถระบุรายละเอียดโปรเจกต์, dependencies ที่ใช้, ระบุ target ที่ต้องการเมื่อสั่ง build และ run
  • Cargo.lock คล้ายกับ Cargo.toml มีหน้าที่เก็บรายละเอียด lib ที่ใช้เมื่อสั่ง build ทำหน้าที่เหมือนนามสกุลไฟล์คือ lock version ของ lib หรือ package ว่าจริงๆ แล้วใช้ version อะไรกันแน่เพราะ Cargo.toml เราอาจจะกำหนด version เป็น “*” หรือ “> 0.3.0” ซึ่งทำให้เราไม่รู้ version ที่แท้จริง

เริ่มต้นเขียนและแหล่งเรียนรู้

ผมไม่เขียนตัวอย่างโค้ดละกันไปดูใน doc ดีกว่า :p

Resources:

  • The Rust Programming Language เรียนรู้จากพื้นฐานก่อน
  • Rust by Example ถ้าใจร้อนก็เริ่มจาก example โค้ดเลย แต่อาจจะงงได้ถ้าไม่รู้พื้นฐานก่อน

Be First to Comment

Leave a Reply

Your email address will not be published.