美文网首页
Flutter学习笔记之变量声明

Flutter学习笔记之变量声明

作者: LevyLin | 来源:发表于2018-12-14 10:55 被阅读0次

    经过几天的学习,对Flutter也有了初步的认识,在我看来,有java基础来学Flutter,首先还是要先看学下Dart语言,要不有些地方还是会很懵逼。

    Dart语言

    工欲善其事必先利其器,在正式要学习flutter之前,我们需要先了解一下Dart语言。
    Dart语言可以看成是JAVA和JS的结合体。Dart在静态语法方面和Java非常相似,如类型定义、函数声明、泛型等,而在动态特性方面又和JavaScript很像,如函数式特性、异步支持等。
    除此之外,Dart也具有一些其它具有表现力的语法,如可选命名参数、..(级联运算符)和?.(条件成员访问运算符)以及??(判空赋值运算符)。

    1.明确知道类型

    可以直接用:

    String a = "aaaa";
    ClassA classA = new ClassA();
    

    这种方式直接声明变量,和java基本上都一样

    2.var

    可以接受任何类型的值,但是一旦确定了类型,则不能更换类型,因此这点和js也略有不同,毕竟Dart语言是强类型语言。

    var test = "aaa";
        //test = 1;//编译不通过
    

    3.dynamic

    dynamic类似java中的Object,顾名思义,就是一个支持多类型的关键词,它与var的区别在于,它的类型是可以换的,

    dynamic test = "aaa";
    test = 1;//编译可以通过
    

    4.final与const

    这两个都有代表常量的意思,区别在于final修饰的变量,只能被赋值一次。而const的用法就比较奇妙了,用于声明变量,效果和final一样,而用于生成对象,效果又和new一样,但是这个对象里面的各种属性的值,就不能重新赋值了。const也只能用于构造函数里面的参数都是final的类。
    还是举个栗子比较明了:

    
    class Point{
      final int x;
      final int y;
    
     const Point(this.x, this.y);
    }
    
    Point p = const Point(2, 3);//p的属性无法在改变。
    
    final a = [1,2,3];
    a.add(4);
    print(a);//[1, 2, 3, 4]
    //a = [2,3,4];//编译不通过
    
    var b = const  [1,2,3];
    //b.add(4);//运行时报错,好奇为什么不在编译的时候就提示不通过呢
    b = [1,2,3];//编译可通过
    b.add(4);//编译可通过
    print(b);//[1,2,3,4]
    
    const c = const [1,2,3];
    //c.add(4);//运行时出错
    //c = [2,3,4];//编译时出错
    

    相关文章

      网友评论

          本文标题:Flutter学习笔记之变量声明

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