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