📅  最后修改于: 2020-11-04 08:58:23             🧑  作者: Mango
功能是Elm程序的基础。函数是执行特定任务的一组语句。
函数将程序组织成逻辑代码块。一旦定义,可以调用函数来访问代码。这使代码可重用。此外,功能使读取和维护程序代码变得容易。
使用函数需要三个步骤-
函数声明告诉编译器函数的名称,返回类型和参数。下面给出了声明函数的语法-
fn_name:data_type_of_the_parameters ->return_type
函数声明指定以下内容-
函数定义提供了函数的实际身体。函数定义指定如何完成特定任务。定义函数的语法如下:
fn_name parameter1 parameter2 = statements
必须调用一个函数才能执行它。下面给出了调用函数的语法-
fn_name parameter1 parameter2
以下代码定义了一个函数问候。该函数返回字符串“ Hello”。
> greet = \
| if True then \
| "Hello" \
| else \
| "GoodBye"
"Hello" : String
> greet
"Hello" : String
参数是一种将值传递给函数的机制。的参数的值传递给函数在函数调用时。
以下示例定义了一个函数fn_add 。该函数接受两个数字作为参数并返回它们的和。在elm REPL中尝试以下操作-
> fn_add x y = x+y
: number -> number -> number
> fn_add 10 20
30 : number
以下示例定义了一个函数sayHello。 sayHello函数接受并返回一个String值作为参数,并返回一个String。
> sayHello name = "Hello "++ name
: 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方法。在第二种情况下,将相同的列表通过管道传递给反向函数,然后通过管道传递以进行联接。因此,列表以反向显示和合并显示。