美文网首页
Dart语言学习-变量与流程控制

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

作者: 盛世光阴 | 来源:发表于2021-06-24 22:16 被阅读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 知识整理

    相关文章

      网友评论

          本文标题:Dart语言学习-变量与流程控制

          本文链接:https://www.haomeiwen.com/subject/bqygyltx.html