flutter - 在开始 Flutter 之前我需要了解 Dart
问题描述
我是一名 JavaScript 开发人员,我想学习 Flutter,我的问题是在开始 Flutter 之前,我是否需要了解 Dart 语言,是否需要观看任何 Dart 课程。
解决方案
Dart 与 Javascript 非常相似。
以下是来自 Javascript 的一些差异:
- Dart 是一种静态类型语言(像 Typescript 一样在编译时进行类型检查,即使您可以禁用具有
dynamic
变量类型的那些),具有强类型推断(将尽力猜测类型而不声明它) - Dart 是面向对象的,并且比 Javascript 更多地使用类(其中对象
{}
通常用作多用途数据结构) - Dart 有一些 JS 没有的语法特性,比如:
- 安全导航操作员:
var name = address?.street?.name;
- 收集 - 如果:
print([1, for(int i in [1, 2, 3]) i + 1, 5]); //= [1, 2, 3, 4, 5]
- 非常强大的构造函数和流库
- 安全导航操作员:
- JS 还有其他一些 Dart 没有的
- 解构赋值
- 可变数量的参数(但您可以在 Dart 中使用命名参数)
我认为你应该刚开始使用 Flutter,然后你就会学习 Dart。
如果您有兴趣了解 Javascript 和 Dart 之间的大多数语法差异,我在这里写了一个完整的比较:https ://flutterigniter.com/ultimate-javascript-dart-syntax-guide/
另一个学习的好方法是使用DartPad作为代码游乐场(请参阅示例下拉菜单)。
推荐阅读
- r - ggplot2 - 图例没有出现
- javascript - 如何使用 firebase admin sdk 将图像上传到 firebase 存储?
- powerbi - 报表不显示 Power BI 上的刷新数据 - SSAS 表格模型
- html - Angular 11 不应用具有不同状态的多个转换
- vba - 如何从 Microsoft Word for Mac 版本 16 中的剪贴板获取文本?
- python - 有没有办法使用 Python 乌龟旋转整个画布?
- python - 按下内联按钮后显示内联键盘
- azure-data-factory - 为什么 Azure 数据工厂使用 AppendFile 而不是 PutBlob 将文件写入 Blob 存储容器?
- spring-batch - 从 Spring 批处理分区工作步骤存储作业级别数据的最佳方法是什么?
- scala - 是什么导致该类型与 Scala 中的基础类型不匹配