Crystal 语法的自定义函数是面向表达式的,与 Crystal 语法公式类似。您可以使用下面列出的任一语法格式。
Function ([argList])
expressions
Function ([argList])
(
expressions
)
argList 语法
可选。这是一个变量列表,表示当函数被调用时传入函数的参数。多个变量由逗号分隔。允许 argList 为空;但是,括住 argList 的括号是必需的,即使在 argList 为空时也必须使用。
[Optional] simpleType [Range] [Array] varName [:=defaultValue]
Optional
可选。指示当调用自定义函数时参数是否可以省略。如果某个参数为可选,则所有随后的参数也必须为可选。如果在调用函数时为某个可选参数提供值,则必须为前面的每个参数提供值。
Range
可选。指定参数是否为范围变量。
注意: 不能使用布尔型范围。
:=defaultValue
对于可选参数是必需项。defaultValue 是一个常量或常量表达式,也即不包含任何变量并在编译时可以简化为一个常量值的表达式。如果调用自定义函数时某个可选参数被省略,则将使用该参数的默认值。
expressions
必需。Crystal 语法自定义函数返回的值是在表达式序列中求值的最后一个表达式的值。语法与 Crystal 语法公式中的语法相同。
作用域
默认情况下,自定义函数内的变量声明为局部作用域。这与 Crystal 语法公式中的变量声明相反,后者在默认情况下为全局作用域。