コンテンツにスキップ

値と変数

リテラル値

YAYAは3種類の値型をサポートする:

整数 (int)

符号付き64ビット整数。10進数、2進数(0b プレフィックス)、16進数(0x プレフィックス)で記述できる。 例:10、0b1010、0xa はすべて10を表す。

浮動小数点数 (double)

符号付き64ビット浮動小数点数。小数点で区別される。整数同士の除算は切り捨て。3.0/4*100 と書くと 75.0 になる(0 にはならない)。

文字列

ダブルクォート("")で囲んだ値は変数・関数の展開をサポートする。シングルクォート('')は展開を抑制する。クォートのエスケープはダブルで行う:"1""2" → 1"2。

ヒアドキュメント: <<"...">> (展開あり)または <<'...'>> (展開なし)で複数行文字列を記述できる。

配列とハッシュ

リテラル値のほかに、値をまとめて扱う型として汎用配列(配列)と、Tc600-3以降ではハッシュ(連想配列、ハッシュと値の入れ子)がある。

Tc600-3以降では、配列やハッシュの要素に配列やハッシュを入れる(入れ子にする)こともできる。

変数

変数にはスカラー値、配列、ハッシュ(Tc600-3以降)を格納できる。変数名は数字始まり・予約文字/予約語・関数名と重複するものは使用不可。

代入は = を使う:str = "こんにちは"。未定義変数は算術では0、文字列連結では空文字列として扱われる。

スコープとライフタイム

グローバル変数

どこからでもアクセス可能。ERASEVAR() で削除されるまで永続する。セッションをまたいで自動的に保存・復元される。

ローカル変数

アンダースコア(_)プレフィックスで宣言。宣言されたスコープブロックとそれより深いブロック内でのみ有効。ブロックを抜けると削除される。異なる関数内で同名のローカル変数を使っても、互いに独立して動作する。