我正在参加跨端技术专题征文活动,详情查看:juejin.cn/post/710123… 。
简介
想使用 Flutter 开发跨端应用,就得学会 Dart 这门由谷歌开发的类型安全的(类似于 TypeScript),面向对象的编程语言。因为 Dart 是 Flutter 应用程序的编程语言,是 Flutter 的基础。Dart 可以通过原生虚拟机运行,也可以转成 JS 代码,然后通过浏览器运行。
环境搭建
之前我们在《Flutter 初识与环境配置》下载了 3.0.1-stable 版本的 Flutter SDK, 其中就包含了完整的 Dart SDK,无需另行下载。在 Flutter 命令脚本的同级目录下也有 dart 命令,由于我们之前配置过了 Flutter 的环境变量,所以无需再去配置 dart 的环境变量就可以方便地运行 dart 命令行程序。
在语言的学习阶段,我是在 VS Code 里编写运行 dart 代码的,并且安装了 Dart 插件,可以提示语法错误等:
编写好一些代码,只需在终端运行 dart 文件名
,就可以看到运行结果了。
hello, juejin!
学习任何一种编程语言,想必都是从打印一句 'hello world' 开始的,既然我这文章是发在掘金的,我就来写个“ hello, juejin!” 吧:
// 例 1
var name = 'juejin';
void main(List<String> args) {
print('hello, $name!');
print(args);
}
使用 dart <文件名>
命令运行例 1 代码输出如下,注意我在文件名后还跟了两个参数 hello
和 dart
:
虽然只是简单的两句打印,但是我们还是可以管中窥豹,可见一斑的:
- 注释
在第 1 行,我写了个注释 // 例 1
,其写法与 js 一致。
- 变量
第 2 行用 var
声明并初始化了一个变量。注意,dart 是类型安全的编程语言,所以这里虽然没有明确指定变量 name
的类型,但是因为类型推断的存在,name
的类型会被推断为 String。
- main 函数
想要运行 dart 代码,就得定义个 main
函数,它是 Dart 语言的入口;
在 dart 中声明函数,无需像在 js 中那样使用关键字 function
,而是直接写 函数名 () {}
就可以了;
- void
因为 main
函数没有返回值,所以我们在函数名前面加了个关键字 void
,表示函数返回值的类型。以 void
声明的函数返回类型,并不会返回值。
- print()
print()
函数用来打印输出,就像是 js 中的 console.log()
。在打印的字符串里用到了变量 name
,类似于 js 中模板字符串的写法,只不过在 dart 中无需写在 ``
中,而是直接在引号内在变量名前加个 $
。另外,print()
只能接收一个参数,而不像 console.log()
可以传递多个。
- 分号
在 js 中,我习惯于省略语句末尾的分号。但是在 dart 中,语句的末尾,如例 1 的第 2 行和第 4 行,这个 ;
是不能省略的。
- main 函数的参数
main
函数其实还可以接收类型为字符串数组( List<String>
)的参数,该参数为运行 dart 文件时,跟在命令后的参数。