libro
www.tuyano.com
初心者のためのDart 2入門

値と計算の基本 (6/9)

作成:2018-03-10 10:20
更新:2018-03-10 10:20

■final変数と定数、ダイナミック変数

変数は、いつでも値を変更することができますが、場合によっては値の変更をしたくないこともあるでしょう。そのような場合には、「final」というものをつけて変数宣言をします。
final x = 123;
final int x = 123;
こんな具合ですね。このようにして宣言すると、変数の値は変更することができなくなります。

これに似たものに「定数」というものもあります。これは、varの代りに「const」というものを使って記述します。
const x = 123;
const int x = 123;
こんな具合ですね。このconstは、実行時にリテラルに置き換えられて実行されます。つまり、これは変数ではなくて「リテラルの仲間」と考えると良いでしょう。


■変数型の設定とダイナミック変数

変数は、varで用意した後、最初に代入された値によって型が決められます。例えば、こんな文があったとしましょう。
var x = 123;
123を代入したことで、この変数xは、整数型の値を保管するものとなります。この後で、テキストの値などを代入するとエラーになるのです。プログラミングでは、既にある変数に型の異なる値を代入して再利用するのは、コードをわかりにくくしますし、思わぬエラーの温床となります。そこでDartでは、値が設定された段階で「この変数は○○の型の値を保管するものだ」と固定されるのですね。

が、ときには「ある変数に設定される型がどのようなものになるか予測できない」ということもあります。どんな型の値が設定されるかわからない、という場合ですね。そういう場合、単にvar ○○で変数を宣言したのでは、変数の型が固定されるため使えません。

このような場合に使われるのが「ダイナミック変数」です。これは以下のように宣言します。
dynamic 変数 ;
このようにして宣言された変数は、どんな型の値も代入することができます。例えば、こんな具合です。
dynamic n = 100;
n = "helo";
n = true;
こんな具合に、どんな値も代入できる変数が作成できます。これは、やや特殊な使い方をするものですが、覚えておくといずれ役立ちますよ!

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのDart 2入門」に戻る