我一直在试图得到一个明确的解释是什么:在dart中表示。
据我所知,它似乎是某种运算符,但我无法清楚地解释它到底是做什么的。
我知道它习惯了把东西分配给其他东西,但我不确定具体情况。
我试着google了一下,没有运气。
我试过搜索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']);
}
}
3条答案
按热度按时间plicqrtu1#
在实施例1和2中:
:
用于设置命名参数。例如,假设我想创建一个Card
小部件。card
小部件可选地接受一个名为elevation
的named参数。因此,我可以这样做::
的另一种使用方式是编写快速条件表达式。在这个例子中,我们的条件是
myList.isEmpty
。如果此条件为真,则返回??
之后的第一个表达式。否则,如果条件为false,则返回:
后面的表达式。ctehm74n2#
它只是一个赋值运算符。您可以为小部件属性指定一个值。例如,容器小部件有许多属性,如颜色或高度:
gdx19jrr3#
我迟到了,但刚刚看到这没有一个公认的答案,因为他们是不完整的。让我们来看看原题中的例子。
示例一:
这是我第一次学习 dart 时最奇怪的适应。这个
:
要么是一个重定向构造函数,要么是为构造函数someBloc()
(通常是PascalCase,但我正在匹配给定的示例)启动一个初始化器列表(也可能调用超级构造函数)。具体来说,这是一个超级初始化器。在本例中,它将someState.initial()
作为参数传递给Bloc类的超级构造函数,因为SomeBloc扩展了Bloc。这本质上与确保在其他OOP语言中调用超级构造函数作为子类中构造函数的第一行是相同的。这对于初始化其他未通过传入参数设置的final类成员变量(示例中未显示)非常有用。
示例二:
本例中可能存在打印错误。按照目前的情况,需要有另一个带命名参数的构造函数。类似于:
如果是这种情况,则
:
设置命名参数的值。这意味着参数可以按任意顺序设置,因为name:
和requestType:
将选择正确的参数,因为它们是在构造函数中用花括号{}
声明的。示例三:
您可以在许多编程语言中找到这个简写