このチャプターの目次

3 変数

varで宣言された識別子は、変数となる。宣言と同時に型と値を指定できる。自明な場合は、型または値を省略できる。
変数の値は、代入演算子で変更できる。その場合の変数を左辺値と呼ぶ。また、スワップ演算子で両辺の値を交換できる。

var foo: int = 12;
var bar: int;
foo = 889464;
var a = "golden axe.";
var b = "silver axe.";
a <=> b;
writeln(a, b, foo);

3.1 定数

constで宣言された識別子は、定数となる。定数の値は変更できず、初期値で固定される。初期値は実行時に計算される。

const foo: int = 12;
const bar = 12;

paramで宣言された識別子は、静的定数となる。定数と同様に初期値で固定され、初期値はコンパイル時に計算される。

param foo: int = 12;
param bar = 12;
type num = int;

typeで宣言された識別子は、型定数となる。なお、静的定数には、以下に示す基本型または列挙型の値のみ設定できる。

param a: bool = true;
param b: uint = 1919;
param c: real = 8.10;
param d: imag = 364i;
param e: string = 'ABC' + "DEF";
param f: Gibier = Gibier.Rabbit;
enum Gibier {Deer, Boar, Rabbit};

3.2 設定

configを前置した変数や定数の値は、起動時に変更できる。同様に、静的定数や型定数も、コンパイル時に変更できる。

config const bar = 121;
config param foo = 121;
config type num = uint;
writeln(foo, bar, num: string);

例えば、定数barは、起動時に--barで設定できる。静的定数fooと型定数numは、コンパイル時に--setで設定できる。

$ chpl config.chpl --set foo=12321 --set num=real
$ ./config --bar=12321
1232112321real(64)