assignment_expression END_STMT
identifier assign_operand expression
代入操作では,右の値の型は左の値の型に変換され,割り当て後は左オペランドに値が格納されます。左オペランドは関数または定数にしないでください。
右オペランドと左オペランドの型が異なる場合は,型変更が実行されます。型変更は,指定された演算子と,オペランドまたは演算子の型に応じて実行されます。
AIT言語で実行される型変更を次の表に示します。警告やエラーは文法チェック時に表示されます。
左オペランドの型 | 右オペランドの型 | 結果 | 説明 |
---|---|---|---|
integer | integer | integer | integer型変数の値が別のinteger型変数に代入されます。 |
integer | float | integer | 切り捨て後の値がinteger型変数に代入されます。データの正確性が損なわれるため警告が表示されます。 |
integer | bool | integer | trueは1として,falseは0としてinteger型変数に代入されます。 |
integer | string | エラー | string値はintegerに型変更できないため,エラーが表示されます。 |
float | integer | float | integer型変数の値がfloat型変数に代入されます。 |
float | float | float | float型変数の値が別のfloat型変数に代入されます。 |
float | bool | float | trueは1.0として,falseは0.0としてfloat型変数に代入されます。 |
float | string | エラー | string値はfloatに型変更できないため,エラーが表示されます。 |
bool | integer | bool | 0以外の値はtrueとして,0はfalseとしてbool型変数に代入されます。データが失われるため警告が表示されます。 |
bool | float | bool | |
bool | bool | bool | bool型変数の値が別のbool型変数に代入されます。 |
bool | string | エラー | string型変数の値はboolに型変更できないため,エラーが表示されます。 |
string | integer | エラー | integer型変数の値はstringに型変更できないため,エラーが表示されます。 |
string | float | エラー | float型変数の値はstringに型変更できないため,エラーが表示されます。 |
string | bool | エラー | bool型変数の値はstringに型変更できないため,エラーが表示されます。 |
string | string | string | string型変数の値が別のstring型変数に代入されます。 |
なお,AIT言語では多重代入ができます。多重代入によって,ある値を二つの変数に代入できます。
MAIN
{
a = 10; // 10という値がaに代入されます。
a = b = 20; // 多重代入が指定されています。
// 20という値が始めに変数bに代入され,
// 次に変数aに代入されます。
}