前言
Dart
是谷歌开发的计算机编程语言,它被用于web
,服务器,移动应用等领域的开发,Dart
亮相于2011年,2015年5月的Dart
开发者峰会上,亮相了基于Dart
语言的移动应用开发框架Sky
,后更名为Flutter
简介
Dart
是面向对象的编程语言,语言是类型安全的;它使用静态类型检查来确保变量的值始终与变量的静态类型相匹配。这也叫健全类型,强类型语言。 Dart
也支持类型推断,类型注释仍是可选的,Dart
提供 健全的空值安全,这意味着只有您声明值可以为空的情况下,值才可以为空;当 Dart
确定变量不可为空时,该变量 永远 不可为空,这一点和Kotlin
很像,可以避免空值的使用异常
运行时执行平台
Dart
的编译器技术可让您以不同的方式运行代码:
原生平台:针对面向移动和桌面设备的应用程序, Dart
拥有具有实时 (JIT
) 编译功能的 Dart VM
和用于生成机器代码的预先 (AOT
) 编译器。
Web
平台:针对面向 Web
的应用程序, Dart
拥有开发时编译器 (dartdevc
) 和生产时编译器 (dart2js
)。两种编译器均能将 Dart
转换为 JavaScript
。
在开发过程中,快速的开发周期对于迭代至关重要。Dart VM
提供了一个实时编译器 (JIT
) ,编译器拥有增量重编译功能 (支持热重载)、运行数据收集 (用于驱动 DevTools
) 以及丰富的开发调试支持。
当应用程序可以部署到生产环境时 (无论是发布到应用程序商店还是部署到生产后端), Dart AOT
编译器提供原生的 ARM
或 x64 机器码的 AOT
编译。经过 AOT
编译的应用程序将稳定快速地启动。
经过 AOT
编译的代码会在高效的 Dart
运行环境中运行,该运行环境拥有健全的 Dart
类型系统,并使用快速对象分配和分代垃圾收集器来管理内存
Dart开发环境搭建
获取Dart SDK
https://dart.cn/tools/sdk/archive
下载完成SDK之后可以对其进行直接解压到任意目录
下载使用WebStorm编辑器
https://www.jetbrains.com/webstorm/
打开WebStorm
之后,安装Dart
插件
创建一个Dart
项目并运行
创建一个Dart
项目,需要指定SDK
的安装路径,然后就可以运行第一行Dart
代码了
Dart中的变量以及条件循环控制
数据类型
number
数字类型可以使用int
,double
String
字符串类型
bool
布尔类型
list
dart中的列表和其它编程语言中的数组相同
map
键值对映射
dynamic
动态类型,实际是一个object
类型,在编译期间不做检查,在运行期间会做类型检查
变量
Dart
属于强类型语言,var
用来声明变量,也可以使用类型直接声明,并且具有自动类型类型推导,也可以使用dynamic
声明动态类型,Dart
将所有未初始化的值都当做对象,所有未初始化的变量值都为null
var name = 'Mike';
String name = 'Mike';
dynamic value = 'Mike';
value = 1;
value = false;
常量
可以使用cons
t和final
定义常量,const
的值会在编译期间确定,final
的值要到运行时才能确定
const name1 = 'Mike';
final String value = '2';
运算符
is!
当类型不匹配时返回true
??=
当变量为null
时候才设置值
v1 ?? v2
当v1
不为null
的时候返回其值,否则返回v2
的值
var name = 'Mike';
print('${name is String}'); //true
print('${name is! String}');//false
var name = null;
name ??= "Mike";
print(name); //Mike
name ??= "张三";
print(name);//张三
var value = 2;
var data;
print(value ?? 'value iis null'); //2
print(data ?? 'data iis null'); //data iis null'
条件控制
var name = 'Mike';
if(name == 'Mike'){
print('name is Mike');//执行
} else{
print('name is else');
}
switch(name){
case 'Mike': {
print('name is Mike');//执行
}
break;
case '张三': {
print('name is 张三');
}
break;
default: {
}
}
循环控制
for
循环
for in
循环
while
循环
do..while
循环
欢迎关注Mike的简书
Android 知识整理
网友评论