Elm - 函式



函式是 Elm 程式的基本構建塊。函式是一組用於執行特定任務的語句。

函式將程式組織成邏輯程式碼塊。定義函式後,可以呼叫函式來訪問程式碼。這使得程式碼可重用。此外,函式使程式程式碼更易於閱讀和維護。

使用函式的步驟

使用函式共有三個步驟:

函式宣告

函式宣告告訴編譯器函式的名稱、返回型別和引數。宣告函式的語法如下:

fn_name:data_type_of_the_parameters ->return_type

函式宣告指定以下內容:

  • 函式的名稱。

  • 引數的資料型別。這是可選的,因為函式可以有引數也可以沒有引數。

  • 函式將返回的值的資料型別。Elm 中的函式必須始終返回值,因為 Elm 是一種函數語言程式設計語言。與其他程式語言中的函式不同,Elm 函式不使用 return 關鍵字返回值。

函式定義或函式實現

函式定義提供了函式的實際主體。函式定義指定如何完成特定任務。定義函式的語法如下:

fn_name parameter1 parameter2 = statements

呼叫函式

必須呼叫函式才能執行它。呼叫函式的語法如下:

fn_name parameter1 parameter2

示例

以下程式碼定義了一個名為 greet 的函式。該函式返回字串“Hello”。

> greet = \
| if True then \
| "Hello" \
| else \
| "GoodBye"
"Hello" : String
> greet
"Hello" : String

帶引數的函式

引數是一種將值傳遞給函式的機制。引數的值在函式呼叫時傳遞給函式。

示例 1

以下示例定義了一個名為 fn_add 的函式。該函式接受兩個數字作為引數並返回它們的和。請在 elm REPL 中嘗試以下操作:

> fn_add x y = x+y
<function> : number -> number -> number
> fn_add 10 20
30 : number

示例 2

以下示例定義了一個名為 sayHello 的函式。sayHello 函式接受並返回一個字串值作為引數並返回一個字串。

> sayHello name = "Hello "++ name
<function> : String -> String
> sayHello "Tutorialspoint"
"Hello Tutorialspoint" : String
>

管道運算子

為了理解管道運算子 |>,讓我們考慮一個例子,我們有一個包含不同字串的列表 ["a","b","c"]。現在我們需要一個用 - 分隔的單個字串:

以下示例顯示瞭如何使用 String.join 來做到這一點:

> String.join "-" ["a","b","c","d","e","f"]
"a-b-c-d-e-f" : String

可以使用管道運算子 |> 執行相同的操作。管道運算子可用於連結多個函式呼叫。

> ["a","b","c","d","e","f"] |> String.join "-"
"a-b-c-d-e-f" : String
> ["a","b","c","d","e","f"] |> List.reverse |> String.join "-"
"f-e-d-c-b-a" : String

在第一個示例中,我們將列表連結到 join 方法。在第二種情況下,相同的列表被傳入 reverse 函式,然後傳入 join 函式。因此,列表以反向顯示並連線。

廣告