2021/5/21 : Flutter : PopupMenuButtonと列挙型(enum)を使ってみよう。

null safety article

 

APIドキュメント

https://api.flutter.dev/flutter/material/PopupMenuButton-class.html


サンプル

ページ遷移(サンプル1)

//PopupMenuButtonのサンプル1(ページ遷移)

import 'package:flutter/material.dart';

void main() => runApp(
  MaterialApp(
    home: MyApp(),
  ),
);

void pushPage(BuildContext context, Widget page) {
  Navigator.of(context).push(
    MaterialPageRoute<void>(builder: (_) => page),
  );
}

List<Function> listOfRoute = [
      (BuildContext context) => 

2021/1/8 A tour of the Dart language>>Enumerated typesの訳

Enumerated types

通常enumerations,あるいはenumと表現される列挙型(Enumerated types)は、特別な種類のクラスです。決まった数の定数値の集まりを表現する型です。

Using enums

enumキーワードを用いて列挙型(enumerated type)を宣言します。

enum Color { red, green, blue }

列挙型のそれぞれの値はゲッターindexを持っています。

ゲッターindexは宣言された列挙型のゼロベースのポジションを返します。例えば、最初の列挙型の値の持つindexは0です。その次の列挙型の値の持つindexは1です。

assert(Color.red.index == 0);
assert(Color.green.index == 1);
assert

Swift 列挙型 パート3(raw value)

ローバリューとは

列挙型の各ケースは、ケースと結びつけられた値を持つことができます。その値をローバリュー(raw value)と言います。

一つの列挙型の各ケースのローバリューは全て同じ型である必要があります。

enum 列挙型名 : ローバリューの型{
    case ケース名1 = ローバリュー1
    case ケース名2 = ローバリュー2
    case ケース名3 = ローバリュー3
}

 

sample1-1

enum EvaluationOfPlayer:String{
    case size="体格"
    case speed="スピード"
    case tech="得意技"
}

var point1=EvaluationOfPlayer.size
print(point1)
var point2:EvaluationOfPlayer?=EvaluationOfPlayer(rawValue:"体格")
print(point2)

var point3=EvaluationOfPlayer(rawValue:"スピード")

Swift 列挙型 パート1(基本)

列挙型の定義方法

enum ExampleEnum{
    case ケース名1
    case ケース名2
}

列挙型の定義は上記のようにenumキーワードの次に列挙型名(上記例ではExampleEnum)、ブロック内に列挙型の定義を記述します。

sample1-1

enum Fruit {
        case orange
        case apple
        case grape
        case banana
}

sample1-1では列挙型Fruit型として、四つのケースを定義しています。列挙型名は通常最初の文字を大文字で記述します。


sample1-2

enum Fruit{
    case orange,apple,grape,banana
}

sample1-2のように複数のケースをコンマで区切って記述することもできます。sample1-2はsample1-1と全く同じ意味です。


列挙型のインスタンス化方法

sample2-1

enum Fruit{
    case orange,apple,grape,banana
}
let fruit1=Fruit.orange
print(fruit1)