本节主要通过与Java
的对比,了解两种语言不同之处,进行Dart
语言语法学习。
首先试个最经典的Hello World
void main() {
print("Hello World");
}
变量
关于变量记录两点内容:
-
Object
、var
与dynamic
的使用 - 区分
final
与const
两关键字
Object、var与dynamic
- 变量是一个引用,没有初始化的变量默认值为
null
-
Object
跟 java一样,是所有类的父类,Object
声明的变量可以是任意类型 -
var
是修饰变量的关键字, 声明的变量在赋值瞬间,就决定它的类型,不能再修改值 -
dynamic
是修饰变量的关键字。不是在编译时确定实际类型, 而是在运行时。dynamic
声明的变量行为与Object
一样 - 在声明变量时,可以选择加上具体 类型:int x = 20
- 对于局部变量,按照目前Dart代码风格推荐,使用
var
修饰
void main() {
Object i = 5;
i = "Juice";
var j = "Juice";
// j=10;不允许再修改j的值了,已经确定它是String类型了,编译错误
var k;//这种情况下,编译时认为k为Object类型,所以以下两种操作成立
k = "Juice";
k = 100;
dynamic z = "Juice"; //运行时,动态确定z是什么类型
z = 8;
}
//参数a是dynamic隐式修饰
void test(a) {}
final与const区别
-
final
是运行时常量,一个 final 变量只能被设置一次 -
const
是编译器常量,它的值在编译期确定,能让代码运行更高效 - 两者区别在于:
const
变量是一个编译时常量,final
变量在第一次使用时被初始化。
void main() {
//运行期常量
final int i = 3;
final j = 3;
const k = 5;
//const q=i;
//由于i是运行时确定的常量,故不能赋值给q
//但是可以把k赋值给它
const q = k;
}
- 类的变量可以为
final
但是不能是const
。如果const
变量在类中,需要定义为static const
静态常量(static 同java)
dart语法.png
网友评论