Erlang - Modüller

Modüller, tek bir ad altında tek bir dosyada yeniden gruplanan bir dizi işlevdir. Ek olarak, Erlang'daki tüm işlevler modüllerde tanımlanmalıdır.

Aritmetik, mantık ve Boolean operatörleri gibi temel işlevlerin çoğu, bir program çalıştırıldığında varsayılan modüller yüklendiği için zaten mevcuttur. Kullanacağınız bir modülde tanımlanan diğer her işlevin formla çağrılması gerekirModule:Function (Argümanlar).

Bir Modül Tanımlama

Bir modülle iki tür şey beyan edebilirsiniz: işlevler ve öznitelikler. Öznitelikler; adı, dış dünya tarafından görülebilmesi gereken işlevler, kodun yazarı vb. Gibi modülün kendisini tanımlayan meta verilerdir. Bu tür meta veriler yararlıdır çünkü derleyiciye işini nasıl yapması gerektiğine dair ipuçları verir ve ayrıca insanların kaynağa danışmak zorunda kalmadan derlenmiş koddan yararlı bilgiler almalarına izin verir.

Bir işlev bildiriminin sözdizimi aşağıdaki gibidir -

Sözdizimi

-module(modulename)

Nerede, modulenamemodülün adıdır. Bu, modüldeki kodun ilk satırı olmalıdır.

Aşağıdaki program, adı verilen bir modülün bir örneğini göstermektedir. helloworld.

Misal

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

start() -> 
   io:fwrite("Hello World").

Yukarıdaki programın çıktısı -

Çıktı

Hello World

Modül Özellikleri

Bir modül özniteliği, bir modülün belirli bir özelliğini tanımlar. Bir modül özniteliği bir etiket ve bir değerden oluşur.

Bir özniteliğin genel sözdizimi -

Sözdizimi

-Tag(Value)

Özniteliğin nasıl kullanılabileceğine dair bir örnek aşağıdaki programda gösterilmektedir -

Misal

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

Yukarıdaki program, sırasıyla program yazarını ve program sürüm numarasını içeren yazar ve sürüm olarak adlandırılan 2 özel özniteliği tanımlar.

Yukarıdaki programın çıktısı -

Çıktı

Hello World

Önceden Oluşturulmuş Nitelikler

Erlang, modüllere eklenebilen önceden oluşturulmuş bazı özelliklere sahiptir. Onlara bir göz atalım.

İhracat

Dışa aktarma özelliği, diğer modüller tarafından tüketilmek üzere dışa aktarılacak bir işlev listesi ve düzen alacaktır. Modül arayüzünü tanımlayacaktır. Bunu önceki tüm örneklerimizde zaten görmüştük.

Sözdizimi

export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])

Nerede,

  • FunctionName - Bu, programdaki işlevin adıdır.

  • FunctionArity - Bu, işlevle ilişkili parametrelerin sayısıdır.

Misal

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

Yukarıdaki programın çıktısı -

Çıktı

Hello World

İthalat

Import özelliği, yerel olarak kullanmak üzere başka bir modülden fonksiyonları içe aktarmak için kullanılır.

Sözdizimi

-import (modulename , [functionname/parameter]).

Nerede,

  • Modulename - Bu, içe aktarılması gereken modülün adıdır.

  • functionname/parameter - modülde içe aktarılması gereken işlev.

Misal

-module(helloworld). 
-import(io,[fwrite/1]). 
-export([start/0]). 

start() -> 
   fwrite("Hello, world!\n").

Yukarıdaki kodda, 'io' kitaplığını ve özellikle fwrite işlevini içe aktarmak için import anahtar sözcüğünü kullanıyoruz. Bu yüzden, şimdi fwrite işlevini ne zaman çağırsak, her yerde io modül adını belirtmemize gerek yok.

Yukarıdaki programın çıktısı -

Çıktı

Hello, world!