⛱️

getterのいい感じの使い方

2023/02/07に公開

なかなか使い方わからない

Flutterでコード書いてるときに見かけるgetってなんだろうか?
これはDartの文法で公式によると、これはメソッドのようですね。

ゲッターとセッター

ゲッターとセッターは、オブジェクトのプロパティに対して読み取りと書き込みのアクセスを提供する特別なメソッドです。各インスタンス変数には暗黙のゲッターと、必要に応じてセッターがあることを思い出してください。ゲッターとセッターを実装し、getとsetキーワードを使用することで、追加のプロパティを作成することができます。
https://dart.dev/guides/language/language-tour


どう使う?

値を渡すメソッドとしてしか使ったことなかったのですが、計算できたり、演算子を使って判定ができるので、変数の値がnullだったら、ぐるぐる回る渦巻きを表示させて、値がnullじゃなかったらメッセージを表示するロジックを作ってみました。

こちらが今回使用するコード

nullの状態なので、CircularProgressIndicatorが、画面中央に表示される。

import 'package:flutter/material.dart';

class CheckPage extends StatefulWidget {
  const CheckPage({super.key});

  
  State<CheckPage> createState() => _CheckPageState();
}

class _CheckPageState extends State<CheckPage> {
  // 値を入れる変数。nullだったら、渦巻きが出てくる!
  final account = null;
  // account変数の値を==を使用してnullかどうか判定するゲッター.
  bool get check => account == null;
  // TextWidgetに値を渡すだけのゲッター.
  String get greet => 'Hello World';

  
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('TestUI'),
        ),
        // 三項演算子を使ってnull判定を行う.
        body: check
            ? Center(child: CircularProgressIndicator())
            : Center(
                child: Column(
                  children: [
                    SizedBox(height: 50),
                    Text(greet),// 挨拶を表示.
                  ],
                ),
              ));
  }
}

値が入ってるときは、メッセージが表示される

先ほどのnullの変数に値を代入する。そうするとメッセージが表示される。

// 値を入れる変数。nullだったら、渦巻きが出てくる!
  final account = "Tom";
  // account変数の値を==を使用してnullかどうか判定するゲッター.
  bool get check => account == null;
  // TextWidgetに値を渡すだけのゲッター.
  String get greet => 'Hello World';

まとめ

ゲッターは、演算子でnullかどうか判定する処理を作ったり、計算の処理をメソッド内に、書いて変数のように使えます。

Discussion