Dart言語での「$」ドルマークの扱い方【Flutter】

Flutter

Flutterの初期プロジェクトのソースを見ていたところ「$(ドル・ダラー)」マークが予想外の位置に記載されていました。プログラム内に$がある場所は、_MyHomePageStateクラス(Stateクラス・状態クラス)内のbuildメソッドにある下記になりますね。

Text(
  '$_counter',
  style: Theme.of(context).textTheme.headline4,
),

この'$_counter'は文字列リテラル内で変数を用いる場合に「$」を頭に付けて変数を呼び出すことが出来ます。

この例で言うと_counterという変数を文字列内で使用するために先頭に「$」を付けていることが分かります。

「$」は文字列の中で変数を参照させる

Dart言語ではprintメソッドも使えますので例えば、

int god = 8192;
print('a = $god');

というコードがあった場合、「a = 8192」と出力されるということです。「$」はあくまで文字列内で変数の値を書き出したり、読み込んだりさせたい時に使います。

文字列内で変数ではなく「$」マークを表示したい場合

ここでふと疑問に思われると思いますが、「$」を変数的な利用ではなく、単純に文字の「$」として出力したい時はどうしたらよいのでしょうか。

答えはとても簡単で「$」の前に「\(バックスラッシュ)」を付けて、エスケープしてあげるだけです。例えば、

int god = 8192;
print('a = \$god');

のように「\$」として記述すれば「a = $god」と出力できるようになります。
エスケープ文字は他にもありそうですね。ここではとりあえず「$」についてだけ明記しました。

まとめ

Dart言語での「$」は、

  • 文字列内で変数を呼び出す
  • 「\$」とすると$はエスケープ出来る

ということを押えておけば大丈夫でしょう。

タイトルとURLをコピーしました