• Flutter学习笔记(3)--Dart变量与基本数据类型


    如需转载,请注明出处:Flutter学习笔记(3)--Dart变量与基本数据类型

    一.变量

    在Dart里面,变量的声明使用var、Object或Dynamic关键字,如下所示:

    var name = ‘张三’;

    在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值为null(包括数字),如果需要判断变量是否为null,则需要进行如下判断:

    String name;if(name == null);

    上面var name = ‘张三’,并没有显示的声明变量的类型,我们也可以显示的声明:String name = ‘张三’;如果对象(变量)不仅限于单一类型,请用Object或Dynamic关键字来进行修饰;

    二.常量与固定值

    在Dart语言里面,如果想要声明不变的常量,可以使用final和const来进行修饰。

    1.final

    final修饰的常量必须在声明的时候就进行初始化,而且在初始化之后值不可变;

    final userName = '张三';
    userName = ‘李四’;//会引发错误

    2.const

    const与final不同,const是一个编译时的常量,这也就意味着通过const修饰的常量,在编译期间就要被初始化,不能等到程序运行后在进行初始化;

    const userName;//错误,const是编译时常量,需要在声明时进行赋值初始化
    const userName = ‘张三’;//正确
    
    var name = ‘张三’;
    const userName = name;//错误,name是个变量,不能赋值给const

    const不仅仅可以声明常数变量,也可以声明常量值以及声明创建常量值的构造函数,任何变量都可以有一个常量值;

    final aList = const[];
    const bList = const[];
    var cList = const[];
    
    这里的aList和bList就是两个空的、不可变的列表集合,而cList则是空的、可变的列表集合;
    需要注意的是:cList可以重新赋值,而aList和bList不可以重新复制;

    三.基本数据类型

    Dart语言常用的基本数据类型包括:Number数字、String字符串、Boolean布尔、List数组、Map集合、symbol符号;

    1.Number类型包括int整型和double浮点型;

    int整型:取值范围为-2^53到2^53,int类型不能包含小数点;

    double浮点型:64位(双精度)浮点数;

    int和double都是num类型的子类,num类型包括的运算操作有:+、-、*、/、以及移位操作>>,num类型包括的常用方法有:abs、ceil和floor;

    2.String类型

    String s1 = ‘张三’;
    String s2 = ‘李四’;
    String s3 = s1 + s2;
    print(s3);
    打印:张三李四;
    
    //单引号里面嵌套单引号,必须在前面加上反斜杠
    String s4 = ‘单引号里面有单引号it's,必须在前面加反斜杠’;
    
    //双引号里面嵌套单引号,可以正常使用
    String s5 = “双引号里面有单引号it‘s,可正常使用”;
    
    //单引号里面嵌套双引号,可以正常使用
    String s6 = ‘单引号里面有双引号“hello word”,可以正常使用’;
    
    //双引号里面嵌套双引号,必须在前面加上反斜杠
    String s7 = “双引号里面有双引号“hello word”,必须在前面加上反斜杠”
    
    //可以通过使用单引号或双引号的三引号来创建多行文字;
    String s8 = '''这是一个
        多行的
        文本'''
    
    String s9= """这也是一个
        多行的
        文本"""

    3.Boolean类型

    bool a = false

    4.List集合

    和java一样, list里面的数据必须同一类型的数据,而且下标是从0开始的;

    var list = [1,2,3];
    //声明一个编译时常量const的list
    List list = const[11,22,33];

    5.Map集合

    Map类型将Key和Value关联在一起,也就是键值对,像其他支持Map的编程语言一样,Key必须是唯一的;

    var week = {
        ‘Monday’ : ‘星期一’,
        ‘Tuesday’ : ‘星期二’,
        ‘Wednesday’ : ‘星期三’,
        ‘Thursday’ : ‘星期四’,
        ‘Friday’ : ‘星期五’,
        ‘Saturday’ : ‘星期六’,       
    }
    
    var week = new Map();
    week['Monday'] = ‘星期一’;
    week['Tuesday'] = ‘星期二’;
    week['Wednesday'] = ‘星期三’;
    week['Thursday'] = ‘星期四’;
    week['Friday'] = ‘星期五’;
    week['Saturday'] = ‘星期六’;

    添加新的Key-value对,对上面week再添加一个新的值;

    week['0'] = '星期日';

    这里的0不是只下标的索引,而是一个键(Key),因此我们要打印week的length的话,长度为7;

    检查Key是否再Map对象中

    assert(week['Mond'] == null);

    下一章节:Flutter学习笔记(4)--Dart函数

  • 相关阅读:
    linux部署docker镜像
    SpringBoot 定时任务篇
    POST形式 soapUI调用WebService的restful接口,传入json参数,并且返回json
    Java操作FTP工具类(实例详解)
    MyBatis逆向工程:根据table生成Model、Mapper、Mapper.xml
    Netty完成网络通信(二)
    NIO完成网络通信(一)
    MySQL5.6数据库8小时内无请求自动断开连接
    Eclipse集成Tomcat插件(特别简单)
    程序从sqlserver2008搬家到MySQL5.6
  • 原文地址:https://www.cnblogs.com/upwgh/p/11161263.html
Copyright © 2020-2023  润新知