変換される型 | |||||
---|---|---|---|---|---|
int | float | string | vector | matrix | |
int | OK | OK | OK | <<$i, $i, $i>> | NONE |
float | 整数部分 | OK | OK | <<$f, $f, $f>> | NONE |
string | 整数部分(数字でなければ0) | OK(数字でなければ0) | OK | OK(vectorかfloatでなければ0) | NONE |
vector | ベクトルの長さの整数部分 | ベクトルの長さ | 3つのfloat | OK | OK([1][3]のみ) |
matrix | ベクトルの長さの整数部分([1][3]より小さい時) | ベクトルの長さ([1][3]より小さい時) | NONE | OK([1][3]より小さい時) | OK |
int $ival = 2.5; // 1
vector $vec = 3.1; // <<3.1, 3.1, 3.1>>
int $ival2 = "3.2 aaa"; // 3
vector $vec2 = "1.5 2.5 bbb"; // <<1.5, 2.5, 0>>
string $str = <<6, 7, 8>> // "6 7 8"
float $fval = <<3, 4>> // 5
vector $vec3 = <<1, 2>> // <<1, 2, 0>>
異なる型の間で加算をすると自動的に型変換が行われる。
$val = 2 + 3.5; // 5.5
$val = 2 + <<3, 4, 5>>; // <<5, 6, 7>>
$val = "value " + 5 // "value 5"
C言語のキャストように明示的に型変換をすることもできる。
$val = (float) 3; // 3.0
$vec = (vector) "<<1, 2, 3>>"; // <<1, 2, 3>>
$str = (string) 56.78; // "56.78"
$val = float(3); // 3.0
$vec = vector( "<<1, 2, 3>>" ); // <<1, 2, 3>>