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!