上次我记录了Flutter的环境搭建,这次来简单记录一下Drat语言,Flutter是 Google推出并开源的移动应用开发框架,开发语言是Dart,那么Dart语言和其他的语言在语法上有上面区别呢,就我目前了解到的一部分,其实有很多java或者kotlin的影子。
一 、变量声明
1.var
类似于kotlin中的var,它可以接收任何类型的变量,和kotlin一样第一次赋值和就不能再次改变变量的类型了。
var t;
t = "hi world";
// 下面代码在dart中会报错,因为变量t的类型已经确定为String,
// 类型一旦确定后则不能再更改其类型。
t = 1000;
2.dynamic和Object
和java中的object一样,所有对象都是object子类,万物皆对象。
dynamic和var类型声明的变量都可以赋值任意对象。和var区别就在于声明的变量在后期还是可以改变变量类型的。
dynamic t;
Object x;
t = "hi world";
x = 'Hello Object';
//下面代码没有问题
t = 1000;
x = 1000;
3. final和const
和java一样final是用来修饰常量,只能被赋值一次。同样const也和kotlin中的用法很类似,也是用来表示常量,只是在dart上被final或者const修饰的变量,变量类型可以省略。
//可以省略String这个类型声明final str = "hi world";
//final String str = "hi world";
const str1 = "hi world";
//const String str1 = "hi world";
二、函数
1.和java一样dart也是一种面向对象的语言,函数实际上也是一个对象。
bool isNoble(int index) {
return _list[index] != null;
}
2.和java中不同的是,bool这个函数返回类型可以不用写,默认返回dynamic类型。
isNoble(int index) => return _list[index] != null;
如果只包含一个表达式的函数可以简写位一行,是不是有写java的影子,哈哈。
3.Dart中函数可以作为变量存在:
var say = (str){
print(str);
};
say("hello world");
4.和kotlin 类似Dart中也可以将函数当作参数传递:
void execute(var callback) {
callback();
}
execute(() => print("hello world""))
5.在Dart中定义函数的时候,可以使用{param1, param2, …},放在参数的后面,可以用于指定名称参数。例如:
//设置[name]和[age]标志
void setUser({String name, int age}) {
// ...
}
enableFlags( age: 12,bold: “xiaoming”);
调用函数的时候可以指定函数的名称,优先赋值给后面的参数,这和kotlin里面还是挺像的。只是这里需要添加额外的大挂号。
今天就先记录到这里,以后有用到其他在来补充。