3、Dart从入门到精通-变量声明与定义

变量的定义有三种方式:

1、明确声明变量类型

String name = 'Bob';

我们可以在定义变量的时候直接指定变量的类型,如上我们指定的变量name的类型为String,就表明变量name只能存储String类型的值,指定其它类型的值就会在编译阶段报错。

2、通过关键字 var 声明

通过var声明的变量编译器会自行推断变量的类型

var name;
name = 'Bob';

上面我们虽然没有指定的变量的类型,但编译器会智能推断出变量name的类型为String类型。

我们在第一行声明了变量name,并没有指定name的类型,只有在第二行我们给变量name赋值的时候,编译器才能推断出变量name的类型为String。

我们在看下如下代码:

var name;
name = 'Bob';
name = 2;

 上面这段代码是不会编译通过的,因为在第二行编译器已经推断出变量name的类型为String,变量类型就不能再改变了,如果我们在把其它类型的值赋给变量name编译器就会报错,所以第三行就会报错。

3、通过dynamic声明变量

通过dynamic声明的变量表明变量的类型是动态的,什么意思的看如下代码:

dynamic name;
name = 'Bob';
name = 2;

代码第一行我们声明变量name为dynamic类型,表明变量name的类型是动态的,不是固定的类型,第二行我们把字符串'Bob'赋给了变量name,第三行我们又把整数2赋给了变量name,此时name的值为整数2,编译器不会报错。

总结

“类型 变量名” :变量类型是固定的,变量声明的时候指定;

“var 变量名”:变量类型是固定的,变量的类型是在赋值的时候推断出来的;

“dynamic 变量名":变量类型是不固定的,可以用任意类型值赋值给它;

 

你可能感兴趣的:(dart)