Erlang - โมดูล
โมดูลคือกลุ่มของฟังก์ชันที่จัดกลุ่มใหม่ในไฟล์เดียวภายใต้ชื่อเดียว นอกจากนี้ต้องกำหนดฟังก์ชันทั้งหมดใน Erlang ในโมดูล
ฟังก์ชันพื้นฐานส่วนใหญ่เช่นตัวดำเนินการทางคณิตศาสตร์ตรรกะและบูลีนมีให้ใช้งานอยู่แล้วเนื่องจากโมดูลเริ่มต้นถูกโหลดเมื่อโปรแกรมทำงาน ฟังก์ชันอื่น ๆ ที่กำหนดไว้ในโมดูลที่คุณจะใช้จะต้องถูกเรียกใช้ด้วยแบบฟอร์มModule:Function (ข้อโต้แย้ง).
การกำหนดโมดูล
ด้วยโมดูลคุณสามารถประกาศสิ่งต่างๆได้สองประเภท ได้แก่ ฟังก์ชันและคุณลักษณะ แอตทริบิวต์คือข้อมูลเมตาที่อธิบายถึงโมดูลเช่นชื่อฟังก์ชันที่ควรเปิดเผยต่อโลกภายนอกผู้เขียนโค้ดและอื่น ๆ ข้อมูลเมตาประเภทนี้มีประโยชน์เนื่องจากให้คำแนะนำแก่คอมไพเลอร์ว่าควรทำงานอย่างไรและยังช่วยให้ผู้ใช้สามารถดึงข้อมูลที่เป็นประโยชน์จากโค้ดที่คอมไพล์โดยไม่ต้องปรึกษาแหล่ง
ไวยากรณ์ของการประกาศฟังก์ชันมีดังนี้ -
ไวยากรณ์
-module(modulename)
ที่ไหน modulenameคือชื่อของโมดูล ต้องเป็นบรรทัดแรกของโค้ดในโมดูล
โปรแกรมต่อไปนี้แสดงตัวอย่างของโมดูลที่เรียกว่า helloworld.
ตัวอย่าง
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("Hello World").
ผลลัพธ์ของโปรแกรมข้างต้นคือ -
เอาต์พุต
Hello World
คุณสมบัติของโมดูล
แอตทริบิวต์ของโมดูลกำหนดคุณสมบัติบางอย่างของโมดูล แอตทริบิวต์โมดูลประกอบด้วยแท็กและค่า
ไวยากรณ์ทั่วไปของแอตทริบิวต์คือ -
ไวยากรณ์
-Tag(Value)
ตัวอย่างวิธีใช้แอตทริบิวต์จะแสดงในโปรแกรมต่อไปนี้ -
ตัวอย่าง
-module(helloworld).
-author("TutorialPoint").
-version("1.0").
-export([start/0]).
start() ->
io:fwrite("Hello World").
โปรแกรมข้างต้นกำหนดแอตทริบิวต์ที่กำหนดเอง 2 รายการเรียกว่าผู้เขียนและเวอร์ชันซึ่งประกอบด้วยผู้เขียนโปรแกรมและหมายเลขเวอร์ชันของโปรแกรมตามลำดับ
ผลลัพธ์ของโปรแกรมข้างต้นคือ -
เอาต์พุต
Hello World
คุณสมบัติที่สร้างไว้ล่วงหน้า
Erlang มีคุณลักษณะที่สร้างไว้ล่วงหน้าซึ่งสามารถเชื่อมต่อกับโมดูลได้ ลองมาดูพวกเขา
ส่งออก
แอตทริบิวต์การส่งออกจะใช้รายการฟังก์ชันและ arity เพื่อส่งออกสำหรับการบริโภคโดยโมดูลอื่น ๆ มันจะกำหนดอินเทอร์เฟซโมดูล เราได้เห็นสิ่งนี้แล้วในตัวอย่างก่อนหน้านี้ทั้งหมด
ไวยากรณ์
export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])
ที่ไหน
FunctionName - นี่คือชื่อของฟังก์ชันในโปรแกรม
FunctionArity - นี่คือจำนวนพารามิเตอร์ที่เกี่ยวข้องกับฟังก์ชัน
ตัวอย่าง
-module(helloworld).
-author("TutorialPoint").
-version("1.0").
-export([start/0]).
start() ->
io:fwrite("Hello World").
ผลลัพธ์ของโปรแกรมข้างต้นจะเป็น -
เอาต์พุต
Hello World
นำเข้า
แอตทริบิวต์การนำเข้าใช้เพื่ออิมพอร์ตฟังก์ชันจากโมดูลอื่นเพื่อใช้เป็นโลคัล
ไวยากรณ์
-import (modulename , [functionname/parameter]).
ที่ไหน
Modulename - นี่คือชื่อของโมดูลที่ต้องนำเข้า
functionname/parameter - ฟังก์ชันในโมดูลที่ต้องนำเข้า
ตัวอย่าง
-module(helloworld).
-import(io,[fwrite/1]).
-export([start/0]).
start() ->
fwrite("Hello, world!\n").
ในโค้ดด้านบนเราใช้คีย์เวิร์ดอิมพอร์ตเพื่ออิมพอร์ตไลบรารี 'io' และเฉพาะฟังก์ชัน fwrite ดังนั้นเมื่อใดก็ตามที่เราเรียกใช้ฟังก์ชัน fwrite เราไม่ต้องพูดถึงชื่อโมดูล io ทุกที่
ผลลัพธ์ของโปรแกรมข้างต้นจะเป็น -
เอาต์พุต
Hello, world!