Erlang - ตัวแปร

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

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

ตัวแปรพื้นฐานต่อไปนี้ใน Erlang อธิบายไว้ในบทสุดท้าย -

  • Numbers- ใช้แทนจำนวนเต็มหรือจำนวนทศนิยม ตัวอย่างคือ 10

  • Boolean - แสดงถึงค่าบูลีนซึ่งอาจเป็นจริงหรือเท็จก็ได้

  • Bit String- สตริงบิตใช้เพื่อจัดเก็บพื้นที่ของหน่วยความจำที่ไม่ได้พิมพ์ ตัวอย่างคือ << 40,50 >>

  • Tuple- ทูเพิลเป็นชนิดข้อมูลผสมที่มีจำนวนคำศัพท์คงที่ ตัวอย่างคือ {40,50}

  • Map- แผนที่เป็นชนิดข้อมูลผสมที่มีการเชื่อมโยงคีย์ - ค่าจำนวนตัวแปร การเชื่อมโยงคีย์ - ค่าแต่ละรายการในแผนที่เรียกว่าคู่การเชื่อมโยง ตัวอย่างคือ {type => person, age => 25}

  • List- รายการคือประเภทข้อมูลผสมที่มีจำนวนคำที่แปรผัน ตัวอย่างคือ [40,40]

การประกาศตัวแปร

ไวยากรณ์ทั่วไปของการกำหนดตัวแปรมีดังนี้ -

ไวยากรณ์

var-name = var-value

ที่ไหน

  • var-name - นี่คือชื่อของตัวแปร

  • var-value - นี่คือค่าที่ผูกไว้กับตัวแปร

ต่อไปนี้เป็นตัวอย่างของการประกาศตัวแปร -

ตัวอย่าง

-module(helloworld). 
-export([start/0]). 

start() -> 
   X = 40, 
   Y = 50, 
   Result = X + Y, 
   io:fwrite("~w",[Result]).

ในตัวอย่างข้างต้นเรามีตัวแปร 2 ตัวตัวหนึ่งคือ X ซึ่งถูกผูกไว้กับค่า 40 และตัวถัดไปคือ Y ซึ่งถูกผูกไว้กับค่า 50 ตัวแปรอื่นที่เรียกว่าผลลัพธ์จะถูกผูกไว้กับการเพิ่มของ X และ Y

ผลลัพธ์ของโปรแกรมข้างต้นจะเป็น -

เอาต์พุต

90

การตั้งชื่อตัวแปร

ตามที่กล่าวไว้ชื่อตัวแปรต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่ มาดูตัวอย่างตัวแปรที่ประกาศเป็นตัวพิมพ์เล็ก

ตัวอย่าง

-module(helloworld). 
-export([start/0]). 

start() -> 
   X = 40, 
   Y = 50, 
   result = X + Y, 
   io:fwrite("~w",[Result]).

หากคุณพยายามรวบรวมโปรแกรมข้างต้นคุณจะได้รับข้อผิดพลาดเวลาคอมไพล์ดังต่อไปนี้

เอาต์พุต

helloworld.erl:8: variable 'Result' is unbound

ประการที่สองตัวแปรทั้งหมดสามารถกำหนดได้เพียงครั้งเดียว มาดูตัวอย่างการกำหนดตัวแปรมากกว่าหนึ่งครั้ง

ตัวอย่าง

-module(helloworld). 
-export([start/0]). 

start() -> 
   X = 40, 
   Y = 50, 
   X = 60, 
   io:fwrite("~w",[X]).

หากคุณพยายามรวบรวมโปรแกรมข้างต้นคุณจะได้รับข้อผิดพลาดเวลาคอมไพล์ดังต่อไปนี้

เอาต์พุต

helloworld.erl:6: Warning: variable 'Y' is unused
helloworld.erl:7: Warning: no clause will ever match
helloworld.erl:7: Warning: the guard for this clause evaluates to 'false'

ตัวแปรการพิมพ์

ในส่วนนี้เราจะพูดถึงวิธีการใช้ฟังก์ชันต่างๆของตัวแปรการพิมพ์

การใช้ฟังก์ชัน io: fwrite

คุณจะได้เห็นสิ่งนี้ (io: fwrite) ที่ใช้ในโปรแกรมทั้งหมดข้างต้น fwrite ฟังก์ชันเป็นส่วนหนึ่งของโมดูล 'io' หรือ Erlang ซึ่งสามารถใช้เพื่อส่งออกค่าของตัวแปรในโปรแกรม

ตัวอย่างต่อไปนี้แสดงพารามิเตอร์อีกสองสามตัวที่สามารถใช้กับคำสั่ง fwrite

ตัวอย่าง

-module(helloworld). 
-export([start/0]). 

start() -> 
   X = 40.00, 
   Y = 50.00, 
   io:fwrite("~f~n",[X]), 
   io:fwrite("~e",[Y]).

ผลลัพธ์ของโปรแกรมข้างต้นจะเป็น -

เอาต์พุต

40.000000
5.00000e+1

ควรสังเกตคำแนะนำต่อไปนี้เกี่ยวกับโปรแกรมข้างต้น

  • ~ - อักขระนี้เป็นสัญลักษณ์ว่าต้องมีการจัดรูปแบบบางอย่างสำหรับเอาต์พุต

  • ~f- อาร์กิวเมนต์คือทศนิยมซึ่งเขียนเป็น [-] ddd.ddd โดยที่ความแม่นยำคือจำนวนหลักหลังจุดทศนิยม ความแม่นยำเริ่มต้นคือ 6 และต้องไม่น้อยกว่า 1

  • ~n - นี่คือการ println ไปยังบรรทัดใหม่

  • ~e- อาร์กิวเมนต์คือ float ซึ่งเขียนเป็น [-] d.ddde + -ddd โดยที่ความแม่นยำคือจำนวนตัวเลขที่เขียน ความแม่นยำเริ่มต้นคือ 6 และต้องไม่น้อยกว่า 2