Dart 基础语法-变量和常量

276 阅读2分钟

1、变量和常量

1.1、变量

Dart语言中所有变量都是一个对象,每个对象都是一个类的实例。数字类型(numbers)、函数和 null 也是对象。所有对象都继承自 Object 类。

Dart中定义变量的方式有两种:

1、明确的指定变量的数据类型

String name;
int age;
double height;

2、使用 var / dynamic / Object 声明变量

var message1;
message1 = "str";
message1 = 19; //这行代码会报错
dynamic message2;
message2 = 1.78; 
message2 = "message2";//这行代码不会报错
print("${message2.length}");
Object message3;
message3 =  10;
message3 = "message3";
print("${message3.lenngth}"); //这句代码会报错

var与dynamic的区别

  • 1.var声明的变量一经赋值后,数据类型就已经确定,不可以接收其他的数据类型,所以message1 = 19这行代码报错
  • 2.dynamic声明的变量在第一次赋值后,可以继续接收其他的数据类型,所以message2 = "message2"这行代码不会报错

dynamic与Object的区别

  • 1.dynamic与Object声明的变量都可以再次接收其他类型的数据类型
  • 2.dynamic声明的变量可以使用变量运行时的属性跟方法,String类型的变量有length属性,所以可以使用,Object声明的变量只能使用Object本身的属性以及方法,Object类型本身不具备lehgth属性,所以print("${message3.lenngth}");这行代码会报错

1.2、final与const声明常量

const str = "sj";
final msg = "msg";

常量总结: 1.const与final 都用于声明常量,而且已经赋值都不可以被修改 2.const声明常量时,必须赋值明确的值,final声明的常量可以在运行时再赋值

late

  • 1、显式声明一个非空的变量,但不初始化。
    如果不加late关键字,类实例化时此值是不确定的,无法通过静态检查,加上late关键字可以通过静态检查,但由此会带来运行时风险。
  • 2、延迟初始化变量。
    如果这个变量没有被使用的话就不会被初始化,初始化语句不会执行。