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__