簡體   English   中英

在 class 構造函數 (Dart) 中使用“{}”關鍵字是什么意思?

[英]What does mean of using the “{}” keyword in class constructor (Dart)?

如果這聽起來像一個非常愚蠢的問題,我很抱歉,但它在 Dart 和 Flutter 中確實是新的。 在 Flutter 的示例中,我經常看到這樣的構造函數:

class CalTable extends StatefulWidget {

  // Constructor with initializer ( : )
  CalTable({Key key}) : super(key: key);

  @override
  _CalTableState createState() => _CalTableState();
}

我知道 {} 是 MAP 還是 SET。 但是這里的 {} 到底是什么意思? 為什么它只用於傳遞一個值Key 鍵?

提前致謝

它與地圖或集合無關,這是 Dart 標記命名參數的方式。

在您的特定情況下, CalTable({Key key})意味着您有一個名為key的參數。 它不是位置的,所以你不能只寫CalTable(yourKey) 它的名字,你必須寫CalTable(key: yourKey) 此外,除非另有說明,否則所有命名參數都是可選的,因此CalTable()也是有效的。

也就是說,我鼓勵您更新到 Dart 和 Flutter 的最新版本,因為您的示例太舊了,由於 null 安全性,它不會在今天的版本中編譯。

請參閱參數的語言導覽以了解有關命名參數的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM