1. Dart基础概述
开发Flutter项目时主要使用的Dart语言,Dart是谷歌开发的计算机编程语言,后来被ECMA(ECMA-408)认定为标准 。它被用于web、服务器、移动应用和物联网等领域的开发。它是宽松开源许可证(修改的BSD证书)下的开源软件。
Dart语言中一切都可以被认为是对象,它是单继承的。可以转译为JavaScript,同时支持接口(interfaces)、混入(mixins)、抽象类(abstract classes)、具体化泛型(reified generics)、可选类型(optional typing)和sound type system。
2. 创建dart文件并执行
在Android Studio中创建一个flutter项目,在test目录中,新建test.dart文件,输入代码
main(){
print("Hello World");
}
在代码空白处,右键,执行“Run test.dart”
下方控制台可以看到运行结果
文件中main()方法可以理解为C语言或Java语言中的main方法,是整个程序的入口方法,print()方法的用途是将其中的参数打印在控制台上。
3. 注释
Dart语言的注释有三种,与Java类似,分别是
- 单行注释
使用//表示单行注释
//这是注释
print("这是代码"); //注释
- 多行注释
使用/* ... */表示多行注释
/*
* 多行注释
* 测试
*/
print("这是代码");
- 文档注释
使用///表示单行文档注释
使用/** ... */表示多行文档注释
///这是单行文档注释
print("这是代码");
/**
* 这是多行文档注释
* 这是多行文档注释
*/
print("这是代码");
文档注释可以通过dartdoc指令导出HTML格式的API文档,生成位置项目\doc\api
目录中
4. 关键字
- 关键字(33个):作为语法使用,不能用作标识符
关键字 | ||||
---|---|---|---|---|
assert | break | case | catch | class |
const | continue | default | else | enum |
extends | false | final | finally | for |
if | in | is | new | null |
rethrow | return | switch | superdo | this |
throw | true | try | typedef | var |
void | while | with |
- 内置标识符(17个):系统已经声明使用的标识符
内置标识符 | ||||
---|---|---|---|---|
abstract | as | covariant | deferred | dynamic |
export | external | factory | get | implements |
import | library | operator | part | set |
static | typedef |
- Dart2新增异步关键字(6个)
异步关键字 | |||||
---|---|---|---|---|---|
async | async* | await | await* | yield | yield* |
5. 变量
可以使用var,Object,dynamic这三个关键字来声明变量
-
使用var声明变量并初始化
var表示类型推断,当第一次使用某种数据类型为变量初始化后,变量的类型就得到确认,不能再赋值为其他类型的变量
正确示例:
var s = 23;
s = 12;
print(s); //12
错误示例: s="赵四"报错“A value of type 'String' can't be assigned to a variable of type 'int'”。大意为:String类型数据不能赋值给已推断类型为int类型的变量
var s = 23;
s = "赵四"; //报错:A value of type 'String' can't be assigned to a variable of type 'int'
print(s);
-
使用Object声明变量并初始化
Object类型为所有类型的基类,可以指代任何类型,所以可以重新赋值为新的类型数据
Object s = 23;
s = "赵四";
print(s); //赵四
-
使用dynamic声明变量并初始化
dynamic表示动态类型,可以在编程过程中改变变量类型,所以可以重新赋值为新的类型数据
dynamic s = 23;
s = "赵四";
print(s); //赵四
除了使用上述三种推断和动态类型声明变量外,也可以使用具体的类型声明变量,这样程序在处理时更易于控制。详情请参照《第3章数据类型》
6. 常量
在Dart语言中,使用final或const来表示常量,在声明常量时,可以使用Object,dynamic或者具体的类型进行常量定义,也可以省略类型直接利用final或const关键字定义常量。
声明常量时,不能使用var关键字
常量一旦初始化后,不可重新赋值
final Object s1 = 1;
final dynamic s2 = 1;
final int s3 = 1;
final s4 = 1;
const Object s1 = 1;
const dynamic s2 = 1;
const int s3 = 1;
const s4 = 1;