# ユーザ定義関数 ユーザ定義関数の作成および呼び出しについて、artisoc4とartisoc Cloudの違いを解説します。 ## 戻り値のある関数 引数として```hikisuu1```と```hikisuu2```(整数型)をとり、実数型の戻り値を持つ関数```kansuu```を作成する場合を考えます。 **artisoc4** artisoc4では以下のように```function```で関数を定義します。 ``` function kansuu(hikisuu1 as integer, hikisuu2 as integer) as double { [処理] return [戻り値] } ``` 呼び出す場合には、同じルールエディタ内で単に関数名と引数を記述します。 ``` a = kansuu(3, 5) //関数を呼び出し、戻り値を変数aに格納 ``` **artisoc Cloud** artisoc Cloudでは、関数は以下のように```def```で定義します。1つ目の引数として必ず```self```を指定することに注意が必要です。引数や戻り値の型を指定する必要はなく、処理はインデント内に記述します。 ``` # ルールエディタ内に記述 def kansuu(self, hikisuu1, hikisuu2): [処理] return [戻り値] ``` 関数を呼び出すときは、同じルールエディタ内で以下のように記述します。```self.[関数名]```の形で記述することや、引数には定義時と違って```self```を記述する必要がないことに注意します。 ``` a = self.kansuu(3, 5) # 関数を呼び出し、戻り値を変数aに格納 ``` ## 戻り値のない関数(サブルーチン) 引数として```hikisuu1```と```hikisuu2```(整数型)をとり、戻り値を持たない関数(サブルーチン)を作成する場合を考えます。 **artisoc4** artisoc4では以下のように```sub```で定義します。 ``` sub kansuu(hikisuu1 as integer, hikisuu2 as integer) { [処理] } ``` 呼び出す場合には、同じルールエディタ内で単に関数名と引数を記述します。 ``` kansuu(3, 5) //関数の呼び出し ``` **artisoc Cloud** artisoc Cloudでは戻り値の有無にかかわらず```def```で関数を定義します。戻り値のある関数との違いは```return```の有無だけです。1つ目の引数として必ず```self```を指定することに注意が必要です。引数の型を指定する必要はなく、処理はインデント内に記述します。 ``` def kansuu(self, hikisuu1, hikisuu2): [処理] ``` 関数を呼び出すときは、同じルールエディタ内で以下のように記述します。```self.[関数名]```の形で記述することや、引数に```self```を記述する必要がないことに注意します。 ``` self.kansuu(3, 5) # 関数の呼び出し ```