【Flutter/Dart】変数・定数宣言

目次

概要

基礎中の基礎となる変数・定数宣言。
プログラムではデータを一時的に保存するための箱が変数となる。
この箱を用意してデータを入れることで四則演算やUIの設定などができる。

ソースコード

アプリ実行部分

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

import 'Basic/BasicView.dart';

void main() {
  runApp(ProviderScope(child: MyApp()));
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepOrange),
        useMaterial3: true,
      ),
      home: const BasicView(title: 'Flutter Demo Home Page'),
    );
  }
}

View部分

import 'package:flutter/material.dart';

class BasicView extends StatefulWidget {
  const BasicView({super.key, required this.title});
  final String title;

  @override
  State<BasicView> createState() => _BasicViewState();
}

class _BasicViewState extends State<BasicView> {

  @override
  Widget build(BuildContext context) {
    var text = "まずは文字を表示だ!";

    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(text)
          ],
        ),
      ),
    );
  }
}

スクリーンショット

詳細

変数宣言

変数宣言をする基本形は以下の通り。

var /* 変数名 */ = /* 変数の設定値 */;

今回の例では以下のようになっている。

var text = "まずは文字を表示だ!";

日本語にすると以下のようになる。

「text」という名前の変数に「まずは文字を表示だ!」という変数の設定値を代入(=)する。

項目設定内容
変数名text
変数の設定値まずは文字を表示だ!

こうすることで、これ以降、「text」と書くと「まずは文字を表示だ!」という文字列と同じことになる。

また、このtextは以下のようにすることでtextの設定値を変えることもできる。

var text = "まずは文字を表示だ!";
text = "変わるよ。表示する文字列が";  // ここで変数「text」の設定値を変更している

行を追加すると画面に表示される文字列が変わるはずだ。

定数宣言

時に「この変数は変更したくない」という場合もあるだろう。
これを「定数」という。
ゲームで言えば「レベルの最大値」「アイテムの最大所持数」など。
そういう場合は以下のようにして書く。

const /* 定数名 */ = /* 定数の設定値 */;

この「const」が付いた変数名は、先ほどの「text」のように設定値を変えることができなくなる。

実際、以下のように書くと2行目でエラーが発生する。

const text = "まずは文字を表示だ!";
text = "変わるよ。表示する文字列が";  // ←ここでエラーが発生する