
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 函式。因此,列表以反向顯示並連線。