Dart(2)-变量

一、变量的声明

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

var i = 123;
int a = 123;
double b = 123;
bool c = true;
String d = 'dart';

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

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

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

二、var和dynamic区别

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

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

dynamic abc = "字符串";
abc = 100;
abc = new AppPage();

三、dynamic和Object区别

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

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

四、总结

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

五、注意事项

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

任何对象的默认值都为null

Dart支持顶层变量

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值