Euphoria - 函数

Euphoria 函数就像过程一样,但它们返回一个值,并且可以在表达式中使用。 本章介绍如何在 Euphoria 中编写自己的函数。

函数定义

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

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 函数在关闭语句结束函数之前必须有return语句。 任何 Euphoria 对象都可以被返回。 实际上,您可以通过返回对象序列来获得多个返回值。 例如

return {x_pos, y_pos}

如果没有什么可返回的,则直接返回1或0即可。返回值1表示成功,0表示失败