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

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

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

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

解決済

MyHomePage({Key key, this.title}) : super(key: key);のコードがわかりません

mako_0221
mako_0221

総合スコア40

Dart

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

1回答

0評価

0クリップ

444閲覧

投稿2022/05/06 02:18

不明点

以下のコードのうち MyHomePage({Key key, this.title}) : super(key: key);の理解に躓いてしまいました。

Dart

class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; _MyHomePageState createState() => _MyHomePageState(); }

公式ドキュメンテーションによれば、superに関しては、以下の通りの記載があり

If the superclass doesn’t have an unnamed, no-argument constructor, then you must manually call one of the constructors in the superclass. Specify the superclass constructor after a colon (:), just before the constructor body (if any).

スーパークラスのコンストラクタの手動による呼び出しについて触れられております。(逆にsuperに関する説明はその程度しか記載がないように思えます)

実際に MyHomePage({Key key, this.title}) : super(key: key);を観察してみると、公式にあるようなsuperの使い方とは異なり、スーパークラスのコンストラクタの手動での呼び出しとは異なるようにも思えます。

一方、オリジナルコード出典もとのQiita記事によれば、このsuper を含めた MyHomePage({Key key, this.title}) : super(key: key);はリダイレクトコンストラクタであると記載がありました。ただ、公式ドキュメンテーションにはリダイレクトコンストラクタの文脈におけるsuperの利用については何も触れられておりません。

ご質問

これらを踏まえて、 MyHomePage({Key key, this.title}) : super(key: key);はどのように理解すればよいのでしょうか?
Qiita記事ではこれはリダイレクトコンストラクタで親にもkeyを渡していると言うような説明をざっくりされていますが、特に公式のリダイレクトコンストラクタには:が2度も出てこないため、混乱しております。。

Dart

//a Tour of Dart Language #redirect part class Point { double x, y; // The main constructor for this class. Point(this.x, this.y); // Delegates to the main constructor. Point.alongXAxis(double x) : this(x, 0); }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Dart

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