Euphoria-functions

提供:Dev Guides
移動先:案内検索

幸福感-機能

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_関数を少し変更してみましょう。 今回は2つのパラメータがかかります-

#!/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は失敗を示します