1Kuinの変数定義
Kuinでは、変数を図1-1のように定義します。
ローカル変数の場合、初期値を指定すると、変数が生成されたときにその値が代入されます。
グローバル変数の場合、初期値にはコンパイル時に定数になる値のみが指定でき、プログラムの起動時にその値が代入されます。
初期値を指定しない場合の変数にはデフォルト値が入ります(Kuinの型とリテラルを参照)。
図1-2は、「[]char」型の変数「str」を定義して初期値に「"abcde"」を指定した例です。
変数は、関数の外で定義するとグローバル変数となりメモリの静的領域に作成されます。 関数の中で定義するとローカル変数となりメモリのスタック領域に作成されます。 またクラス内で定義するとプロパティ(メンバ変数)となります。
2Kuinの関数定義
Kuinでは、関数を図2-1のように定義します。
例えば、「int」型の引数「a」「b」を取り「bool」型の値を返す関数「f」を定義するときは図2-2のようにします。
関数をクラス内で定義するとメソッド(メンバ関数)となります。
2.1関数内関数
関数の中で関数を定義することもできます(図2-3)。
ただし、関数内関数には図2-4の制約があります。
2.2参照渡し
仮引数の型の前に「&」を付けると、引数に変数の参照が渡る「参照渡し」になります。
参照渡しの引数に変数を渡すときには、実引数の変数の前にも「&」を付ける必要があります(図2-5)。
この例では「f(&x, &y)」を呼び出すと変数xとyの参照が渡り、関数f内でそれぞれ3と5の値が代入されるため、xは3、yは5となります。
また、参照渡しの引数に変数名を書かずに「&」とだけ書くと、自動的に一時変数が作られて渡されます(図2-6)。
関数の戻り値を参照渡しで返しているとき、それを受け取る必要がない場合にこの記法が便利です。
「&」とだけ書いたときに渡る一時変数の値は、関数呼び出しの直前に型のデフォルト値で初期化されています。