Euphoria - 函数



Euphoria 函数与过程类似,但它们会返回一个值,并且可以用于表达式中。本章解释如何在 Euphoria 中编写自己的函数。

函数定义

在使用函数之前,我们需要定义它。在 Euphoria 中定义函数最常用的方法是使用 **function** 关键字,后跟唯一的函数名、参数列表(可能为空)以及以 **end function** 语句结尾的语句块。基本语法如下所示:

function functionname(parameter-list)

   statements
   ..........
   return [Euphoria Object]

end function

示例

这里定义了一个名为 sayHello 的简单函数,它不带任何参数:

function sayHello()
   puts(1, "Hello there")
   return 1
end function

调用函数

要在脚本后面的某个地方调用函数,只需编写该函数的名称,如下所示:

#!/home/euphoria-4.0b2/bin/eui

function sayHello()
   puts(1, "Hello there")
   return 1
end function

-- Call above defined function.
sayHello()

这将产生以下结果:

Hello there

函数参数

到目前为止,我们已经看到了没有参数的函数。但是,在调用函数时,可以传递不同的参数。这些传递的参数可以在函数内部捕获,并且可以对这些参数进行任何操作。

函数可以带有多个用逗号分隔的参数。

示例

让我们对我们的 *sayHello* 函数进行一些修改。这次它接受两个参数:

#!/home/euphoria-4.0b2/bin/eui

function sayHello(sequence name,atom  age)
   printf(1, "%s is %d years old.", {name, age})
   return 1
end function

-- Call above defined function.
sayHello("zara", 8)

这将产生以下结果:

zara is 8 years old.

return 语句

Euphoria 函数必须在结束语句 **end function** 之前包含 *return* 语句。任何 Euphoria 对象都可以被返回。实际上,您可以通过返回一系列对象来拥有多个返回值。例如:

return {x_pos, y_pos}

如果您没有要返回的内容,则只需返回 1 或 0。返回值 1 表示成功,0 表示失败。

广告