Erlang 基本語法

為了理解Erlang的基本語法,讓我們首先看一個簡單的Hello World程序。

實例

% hello world program
-module(helloworld). 
-export([start/0]). 

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

關(guān)于上述程序,需要注意以下幾點:

  • %符號用于向程序添加注釋。

  • module語句就像在任何編程語言中添加命令空間一樣。在這里,我們要提到的是,這段代碼將是一個名為helloworld的模塊的一部分。

  • 使用export函數(shù)可以使用程序中定義的任何函數(shù)。我們正在定義一個名為start的函數(shù),為了使用start函數(shù),我們必須使用export語句。/0表示我們的函數(shù)‘start’ 接受0參數(shù).

  • 我們最終定義了start函數(shù)。這里我們使用另一個名為io的模塊,它在Erlang中具有所有必需的輸入輸出函數(shù)。我們使用fwrite函數(shù)將“Hello World”輸出到控制臺。

上面程序的輸出將是-

輸出

Hello, world!

聲明的一般形式

在Erlang中,您已經(jīng)看到Erlang語言中使用了不同的符號。讓我們看一下我們從一個簡單的Hello World程序中看到的內(nèi)容-

  • 連字符(–)通常與模塊,導(dǎo)入和導(dǎo)出語句一起使用。連字符用于為每個語句賦予相應(yīng)的含義。因此,Hello world程序的示例顯示在以下程序中-

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

每個語句都用點(.)符號定界。Erlang中的每個語句都需要以該定界符結(jié)尾。Hello world程序的示例如下例所示:

io:fwrite("Hello, world!\n").
  • 斜杠(/)符號與函數(shù)一起使用,以定義函數(shù)接受的參數(shù)數(shù)量。

-export([start/0]).

模塊

在Erlang中,所有代碼都分為模塊。模塊由一系列屬性和函數(shù)聲明組成。就像其他編程語言中的名稱空間的概念一樣,該名稱空間用于邏輯上分離不同的代碼單元。

定義模塊

使用模塊標(biāo)識符定義模塊。通用語法和示例如下。

語法

-module(ModuleName)

ModuleName需求是相同的文件名減去擴展.erl。否則,代碼加載將無法按預(yù)期進行。

實例

-module(helloworld)

這些模塊將在隨后的章節(jié)中詳細介紹,這只是為了使您對如何定義模塊有一個基本的了解。

Erlang中的導(dǎo)入聲明

在Erlang中,如果要使用現(xiàn)有Erlang模塊的功能,則可以使用import語句。以下程序描述了import語句的一般形式-

實例

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

在哪里,

  • 模塊名?這是需要導(dǎo)入的模塊的名稱。

  • 函數(shù)名稱/參數(shù) ?模塊中需要導(dǎo)入的功能。

讓我們更改編寫hello world程序以使用import語句的方式。該示例將在以下程序中顯示。

實例

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

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

在上面的代碼中,我們使用import關(guān)鍵字導(dǎo)入庫“ io”,尤其是fwrite函數(shù)。因此,現(xiàn)在無論何時調(diào)用fwrite函數(shù),都不必在任何地方都提及io模塊名稱。

Erlang中的關(guān)鍵字

關(guān)鍵字是Erlang中的保留字,不得將其用于預(yù)定目的以外的其他目的。以下是Erlang中的關(guān)鍵字列表。

afterandandalsoband
beginbnotborbsl
bsrbxorcasecatch
conddivendfun
ifletnotof
ororelsereceiverem
trywhenxor

Erlang 注釋

注釋用于記錄代碼。單行注釋通過在行中的任何位置使用%符號來標(biāo)識。以下是相同的-

實例

% hello world program
-module(helloworld).
% 導(dǎo)入函數(shù),用于導(dǎo)入 io 模塊
-import(io,[fwrite/1]).
%導(dǎo)出函數(shù),用于確保可以訪問啟動函數(shù)。
-export([start/0]).

start() ->
   fwrite("Hello, world!\n").
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清