Elixir - ไวยากรณ์พื้นฐาน
เราจะเริ่มต้นด้วยโปรแกรม 'Hello World' ตามธรรมเนียม
ในการเริ่มเชลล์แบบโต้ตอบ Elixir ให้ป้อนคำสั่งต่อไปนี้
iex
หลังจากเปลือกเริ่มทำงานให้ใช้ไฟล์ IO.putsฟังก์ชันเพื่อ "ใส่" สตริงบนเอาต์พุตคอนโซล ป้อนสิ่งต่อไปนี้ในเปลือก Elixir ของคุณ -
IO.puts "Hello world"
ในบทช่วยสอนนี้เราจะใช้โหมดสคริปต์ Elixir ซึ่งเราจะเก็บรหัส Elixir ไว้ในไฟล์ที่มีนามสกุล .ex. ให้เราเก็บรหัสด้านบนไว้ในไฟล์test.exไฟล์. ในขั้นตอนที่ประสบความสำเร็จเราจะดำเนินการโดยใช้elixirc-
IO.puts "Hello world"
ตอนนี้ให้เราลองเรียกใช้โปรแกรมข้างต้นดังนี้ -
$elixirc test.ex
โปรแกรมข้างต้นสร้างผลลัพธ์ต่อไปนี้ -
Hello World
ที่นี่เรากำลังเรียกใช้ฟังก์ชัน IO.putsเพื่อสร้างสตริงไปยังคอนโซลของเราเป็นเอาต์พุต ฟังก์ชันนี้สามารถเรียกได้ว่าเป็นวิธีที่เราทำใน C, C ++, Java และอื่น ๆ โดยให้อาร์กิวเมนต์ในวงเล็บตามชื่อฟังก์ชัน -
IO.puts("Hello world")
ความคิดเห็น
ความคิดเห็นบรรทัดเดียวเริ่มต้นด้วยสัญลักษณ์ '#' ไม่มีความคิดเห็นหลายบรรทัด แต่คุณสามารถซ้อนความคิดเห็นหลายรายการได้ ตัวอย่างเช่น -
#This is a comment in Elixir
การสิ้นสุดบรรทัด
ไม่มีการลงท้ายบรรทัดที่ต้องการเช่น ';' ใน Elixir อย่างไรก็ตามเราสามารถมีหลายคำสั่งในบรรทัดเดียวกันได้โดยใช้ ";" ตัวอย่างเช่น,
IO.puts("Hello"); IO.puts("World!")
โปรแกรมข้างต้นสร้างผลลัพธ์ต่อไปนี้ -
Hello
World!
ตัวระบุ
ตัวระบุเช่นตัวแปรชื่อฟังก์ชันใช้เพื่อระบุตัวแปรฟังก์ชัน ฯลฯ ใน Elixir คุณสามารถตั้งชื่อตัวระบุของคุณโดยเริ่มจากตัวอักษรตัวพิมพ์เล็กพร้อมตัวเลขขีดล่างและตัวอักษรตัวพิมพ์ใหญ่หลังจากนั้น หลักการตั้งชื่อนี้เรียกกันโดยทั่วไปว่า snake_case ตัวอย่างเช่นต่อไปนี้เป็นตัวระบุที่ถูกต้องใน Elixir -
var1 variable_2 one_M0r3_variable
โปรดทราบว่าตัวแปรสามารถตั้งชื่อด้วยเครื่องหมายขีดล่าง ค่าที่ไม่ได้ตั้งใจจะใช้ต้องถูกกำหนดให้กับ _ หรือให้กับตัวแปรที่ขึ้นต้นด้วยขีดล่าง -
_some_random_value = 42
นอกจากนี้ Elixir ยังอาศัยขีดล่างเพื่อทำให้ฟังก์ชันเป็นส่วนตัวสำหรับโมดูล หากคุณตั้งชื่อฟังก์ชันด้วยขีดล่างนำหน้าในโมดูลและนำเข้าโมดูลนั้นฟังก์ชันนี้จะไม่ถูกนำเข้า
มีความซับซ้อนอื่น ๆ อีกมากมายที่เกี่ยวข้องกับการตั้งชื่อฟังก์ชันใน Elixir ซึ่งเราจะพูดถึงในบทต่อ ๆ ไป
คำสงวน
คำต่อไปนี้สงวนไว้และไม่สามารถใช้เป็นชื่อตัวแปรโมดูลหรือฟังก์ชันได้
after and catch do inbits inlist nil else end
not or false fn in rescue true when xor
__MODULE__ __FILE__ __DIR__ __ENV__ __CALLER__