• Dart(2)-变量


    一、变量的声明

    var-变量(根据赋值推断类型),也可以定义整型、浮点类型、对象、字符串、布尔等。如下:

    1. var i = 123;
    2. int a = 123;
    3. double b = 123;
    4. bool c = true;
    5. String d = 'dart';

    dynamic-动态类型,一般用于无法确定的类型,可以随意更换你的数据类型。var声明的变量未赋值的时候就是dynamic类型。如果你对Flutter和Native原生通信PlatformChannel代码熟悉的话,你会发现里面大量使用了dynamic, 因为可能native数据类型无法对应dart中的数据类型,此时dart接收一般就会使用dynamic

    Object-对象,在大部分时候,最好使用Object,尽量不要用dynamic。

    上述三种类型若未初始化,会默认全部赋值为null,也可以在定义的时候直接赋值。

    二、var和dynamic区别

    var一旦使用var定义的变量赋值了(除null),那么这个变量的类型就固定了,不能换成其他类型的值,否则在编译器就会提示错误。

    而dynamic则不会,可以随意改变所赋值变量的数据类型。比如:

    1. dynamic abc = "字符串";
    2. abc = 100;
    3. abc = new AppPage();

    三、dynamic和Object区别

    dayamic 在编译时不会检查代码,比如下图中的dyn对象没有go方法,编译器是忽略的这个检查的。

    Object在编译时会代码检查(即检查类型)

     

    四、总结

    序号类型变量声明
    1var如果初始化没有赋值或赋值为null,可以重新赋值为任何类型;如果初始值有赋值且不为null,类型被锁定
    2dynamic动态任意类型,编译时不检查类型
    3Object动态任意类型,编译时检查类型

    五、注意事项

    任何变量(包括int、bool类型)在没有初始化变量时会自动赋值为null

    任何对象的默认值都为null

  • 相关阅读:
    终端天线—8.2G手机调试
    ONEPIECE!程序环境和预处理——C语言最终章
    常用HTML5开发工具有哪些?
    题库API搭建接口
    Windows10环境下如何打开远程桌面
    Pytorch 快速参数权重初始化
    【图解HTTP】访问用户身份的认证
    2023年第四届MathorCup高校数学建模挑战赛——大数据竞赛B题
    为什么避免在循环、条件或嵌套函数中调用 Hooks
    最难的IB课程为什么含金量最高?
  • 原文地址:https://blog.csdn.net/life491249957/article/details/126020372