質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

解決済

1回答

714閲覧

NONE の必要性は?

SuperJulior

総合スコア12

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2020/09/03 06:29

質問

https://youtu.be/aYhd1oulIS0
上記のユーチューブ動画を参考に、テトリスアプリを作成中です。
左右に動かす、ローテートさせる、といったボタンを配置しているのですが、それをコンソールに表示させる用に、

Dart

1enum LastButtonPressed { LEFT, RIGHT, ROTATE, NONE }

を使って表示させてるのですが、このNONEはなぜ必要なのですか?

該当のソースコード

Dart

1import 'package:flutter/material.dart'; 2import 'package:flutter_app_japanese_tetris/actionButton.dart'; 3import 'package:flutter_app_japanese_tetris/main.dart'; 4 5enum LastButtonPressed { LEFT, RIGHT, ROTATE, NONE } 6 7 8class Game extends StatefulWidget { 9 10 _Game createState() => _Game(); 11} 12 13class _Game extends State<Game> { 14 15 LastButtonPressed performAction = LastButtonPressed.NONE; 16 17 void onActionButtonPressed(LastButtonPressed newAction) { 18 setState(() { 19 performAction = newAction; 20 print("Changing state: " + performAction.toString()); 21 }); 22 } 23 24 25 Widget build(BuildContext context) { 26 return Scaffold( 27 backgroundColor: Colors.brown[300], 28 body: Column( 29 mainAxisAlignment: MainAxisAlignment.spaceEvenly, 30 children: <Widget>[ 31 Center( 32 child: Container( 33 width: WIDTH, 34 height: HEIGHT, 35 decoration: BoxDecoration( 36 border: Border.all(color: Colors.black), 37 ), 38 ), 39 ), 40 Row( 41 mainAxisAlignment: MainAxisAlignment.spaceEvenly, 42 children: <Widget>[ 43 ActionButton( 44 onActionButtonPressed, 45 Icon(Icons.arrow_left), 46 LastButtonPressed.LEFT 47 ), 48 ActionButton( 49 onActionButtonPressed, 50 Icon(Icons.arrow_right), 51 LastButtonPressed.RIGHT 52 ), 53 ActionButton( 54 onActionButtonPressed, 55 Icon(Icons.rotate_90_degrees_ccw), 56 LastButtonPressed.ROTATE, 57 ), 58 ]) 59 ], 60 ), 61 ); 62 } 63} 64

補足情報(FW/ツールのバージョンなど)

MacOS Mojave
Android Studio

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/09/03 06:42

なぜそれを加えたんでしょうか。 あなたが書いたものはあなたしかわかりません
SuperJulior

2020/09/03 07:37

https://youtu.be/aYhd1oulIS0 こちらの動画の方が作られたコードです。ここについては特に言及しておらず、Consoleに出てくることもないので、何の為に必要なのかが疑問に思い、質問しました。
guest

回答1

0

ベストアンサー

LastButtonPressed performAction = LastButtonPressed.NONE;

ここで初期化しています。名前から察するに、最後に押されたボタンでしょうから、何も押されていない時には NONE になるのが適当かと思います。

投稿2020/09/03 06:57

Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SuperJulior

2020/09/03 07:40

なるほど、初期値が必要なんですね。まだ初期化の概念や必要性が理解できておらず、うまく自分の中で掴めていません、、、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問