Dart语言学习-变量与流程控制

2021-06-24  本文已影响0人  盛世光阴

前言

Dart是谷歌开发的计算机编程语言,它被用于web,服务器,移动应用等领域的开发,Dart亮相于2011年,2015年5月的Dart开发者峰会上,亮相了基于Dart语言的移动应用开发框架Sky,后更名为Flutter

img.jpg

简介

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之后可以对其进行直接解压到任意目录

img.PNG

下载使用WebStorm编辑器

https://www.jetbrains.com/webstorm/
打开WebStorm之后,安装Dart插件

img.PNG

创建一个Dart项目并运行

创建一个Dart项目,需要指定SDK的安装路径,然后就可以运行第一行Dart代码了

img.PNG

Dart中的变量以及条件循环控制

数据类型

number 数字类型可以使用intdouble
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;

常量

可以使用const和final定义常量,const的值会在编译期间确定,final的值要到运行时才能确定

const name1 = 'Mike';
final String value = '2';

运算符

is! 当类型不匹配时返回true
??= 当变量为null时候才设置值
v1 ?? v2v1不为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 知识整理

上一篇下一篇

猜你喜欢

热点阅读