dart - 了解抖动语法

标签 dart flutter

我正在查看某人的波动代码,并且其中有些代码我不明白它在做什么。

我不理解其中的某些语法,因为从未用其他任何语言看到过该语法。

这是三个例子...

1.  final Geolocator geolocator = Geolocator()
    ..forceAndroidLocationManager = true;

2.  final firstName = appState?.user?.firstName ?? '';

3.  var envelope = new Envelope()
    ..from = 'support@example.com'
    ..recipients.add(Globals.sosEmail)
    ..ccRecipients.add(email)
    ..subject = '$firstName $lastName hello. ${new DateTime.now()}'
    ..text = "Hello"'
    ..html ='<p>Hey!</p>';

(2)在做什么? ?.?? ''是什么意思?

在语法中,连续有两个点,如(1)..forceAndroidLocationManager..from..text等。

有人知道上面3个代码示例的作用吗?
谢谢!

最佳答案

第一个示例是cascade notation
这意味着您可以对同一个对象执行多项操作。 dart网站上的示例:

querySelector('#confirm') // Get an object.
..text = 'Confirm' // Use its members.
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));

第二个例子是关于null-aware operators
final firstName = appState?.user?.firstName ?? '';

这里发生的是,我们有一个名为appState的变量,并且appState?.user意味着我们仅应在appState不为null的情况下尝试访问user(因此我们不会出现nullpointer指针错误。user?.firstname也是一样。

最后,??的意思是将'firstName'设置为appState.user.firstName,如果不为null,则将其设置为'。

第三个示例与第一个示例相同。

关于dart - 了解抖动语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56257955/

相关文章:

timer - flutter 倒数计时器

flutter - 如何在 flutter 中使用精度对整数进行舍入

flutter :使用 Provider 时状态在热重载时丢失

Android Studio 模拟器对运行时目录的所有权错误

listview - 使用回调删除 ListView 项的Flutter/Dart Issue

dart - 如何在flutter中动态设置State变量?

sockets - flutter : keep socket io open while app in background (IOS)

flutter - 如何在Flutter中使用自定义模型从Future获得值(value)

dart - 为什么即使在打印字符时控制台也为空?

flutter - flutter中如何去掉table最外层的边框线| flutter