Dart基础1-变量

2018-12-14  本文已影响23人  叶落清秋

1.定义

声明 作用
var 自动推导类型
dynamic 动态类型 (变量类型可以是任何数据类型)
明确的类型

注:和java不同,dart中的int、long、double、bool等并不是关键字,只是一个类

var name = 'Bob';  //自动推导出类型为String(这里的' 和 "并没有区别)
dynamic a = "a";
a = 1;             //可以修改
int i = 12;       //类型为int类

1.2 修饰

修饰 说明
final 运行常量
const 编译常量, 编译时确定并且不再变的变量
static 仅可用在类中,静态变量
  1. final/const 必须初始化的时候赋值,且不可改变
  2. 类中属性,const常量必须用static修饰
final name = 'Bob'; // 可以不需要指明类型,因为可以推导出来,后面必须初始化
final String nickname = 'Bobby'; 

final ls = [1,2,3,4,5,6]; // 不传递不可变性,不影响子元素的可变性
ls[1] = 10;

const ls1 = [1,2,3,4,5,6]; // 传递不可变行,影响子元素的可变性
// ls1[1] = 10; // 报错

// 使用const 定义的变量,如果在内存中已经存在, 则会复用
const ls2 = [1,2,3,4,5,6];
print(identical(ls1,ls2)); // true ls1 和 ls2 是相同对象

创建常量值 const

通过常量值的构造函数,创建常量值

var foo = const [];   //这里List的构造函数也是const修饰的
final bar = const [];  //bar不可改变
const baz = []; // baz不可改变,等价于const baz = const []
class A{
  static const int a = 1;
  const A();         //修饰构造函数
}

void main(){
    A a = const A();   
}
上一篇下一篇

猜你喜欢

热点阅读