【问题标题】:what does ":" mean or do in Dart?“:”在 Dart 中是什么意思或做什么?
【发布时间】:2020-08-04 11:08:44
【问题描述】:

我一直试图清楚地解释 : 在 dart 中的含义。

据我所知,它似乎是某种运算符,但我无法清楚地解释它的具体作用。

我知道它习惯于将东西分配给其他东西,但我不确定具体细节。

我试过用谷歌搜索它,没有运气。

我尝试过搜索 dart 文档。

https://dart.dev/guides/language/language-tour#operators

我知道它被用作条件表达式的一部分,如下所示:

https://dart.dev/guides/language/language-tour#conditional-expressions

以下是如何使用它的示例:

示例 1:

class someBloc extends Bloc<someEvent, someState> {
    someBloc() : super(someState.initial());
}

示例 2:

class someClass {
  final String requestType;
  final String name; 
   
  factory someClass.fromJson(Map<String, dynamic> json) {
        return SomeClass(
            requestType: json['Type'],
            name: json['Name']);
      }
}

【问题讨论】:

标签: class flutter dart operators subclass


【解决方案1】:

在示例 1 和 2 中:

: 用于设置命名参数。例如,假设我想创建一个Card 小部件。 card 小部件可选地采用名为 elevationnamed 参数。因此,我可以这样做:

Card(
  elevation: 4.0,
)

: 的另一种用法是编写快速条件表达式。

final String isMyListEmpty = myList.isEmpty ?? 'Yes, the list is empty' : 'No, the list is not empty';

在这个例子中,我们的条件是myList.isEmpty。如果此条件为真,则返回?? 之后的第一个表达式。否则,如果条件为假,则返回:之后的表达式。

【讨论】:

  • 我不太明白,示例 1 中设置了什么命名参数?
  • @PieterScholtz elevation
【解决方案2】:

它只是一个赋值运算符。您为小部件属性分配一个值。例如,Container 小部件有许多属性,例如颜色或高度:

  Container(
    margin: const EdgeInsets.all(10.0),
    color: Colors.amber[600],
    width: 48.0,
    height: 48.0,
  ),

【讨论】:

  • 虽然有这个效果,但它不是赋值运算符,也不会赋值给属性。您的示例是关于设置命名参数。你可能把它弄混了,因为属性通常也被命名为构造函数的参数。但这是一个约定,其他人可以对他们的小部件进行不同的编程。
猜你喜欢
  • 2019-02-05
  • 2011-12-27
  • 2017-09-12
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
  • 2017-11-02
  • 1970-01-01
相关资源
最近更新 更多