参考资料:
https://www.itying.com/goods-1120.html
https://github.com/lijinhua/dartstudy.git
dart编程语言
dart官网
下面主要是记录一下与java的区别
1、dart声明变量可以使用var,也可以使用具体的类型
2、dart常量区别
Dart定义常量用 final 和 const 关键字来修饰符
const值不变,一开始就得赋值
final 可以开始不赋值,但只能赋值一次
final 不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化
常量是永远不改量的量,用final或const修饰它,而不是使用var或其他变量类型
3、关于List与Map区别
4、操作符is类似于java中的instanceof
5、??运算符
int n1;
int n2 = n1 ??10; // 如果n1为空,则将10赋值给n2,否则将n1的值赋值给n2
6、dart的函数有一些与java有区别
6.1:定义一个带可选参数的方法,使用[],
例如:String getUserInfo(String name, [int age])
调用:
print(getUserInfo('沙和尚', 10));
print(getUserInfo('沙和尚'));
6.2、定义一个带默认参数的方法
String getUserInfo2(String name, [String sex ='男', int age])
调用方式:
print(getUserInfo2('嫦娥', '女', 68));
print(getUserInfo2('嫦娥', '女'));
print(getUserInfo2('嫦娥'));
6.3、定义一个命名参数的方法
getUserInfo3(String name, {String sex ='男', int age})
调用:
print(getUserInfo3('玉兔'));
print(getUserInfo3('玉兔', sex:'女'));
print(getUserInfo3('玉兔', sex:'女', age:99));
6.4、实现一个把 方法 当做 参数 的方法
fn6(fn) {
fn();
}
fn6_1() {
print('我是一个方法!');
}
fn6(fn6_1);
7、Dart箭头函数
如果函数体里面里面只有一句话,那么这可以写这样
bool isEvenNumber(int n) {
return n %2 ==0 ?true :false;
}
bool isEvenNumber(int n) =>n %2 ==0 ?true :false;
8、类的区别
8.1、构造方法
class Person{
String name;
int age;
//8、2 默认构造函数的简写
Person(this.name,this.age);
// 上面相当于
// this.name = name
// this.age= age
// 命名构造函数
Person.setInfo(String name,int age){
this.name=name;
this.age=age;
}
void printInfo(){
print("${this.name}----${this.age}");
}
}
8.3、私有方法和属性和类都是在前面加下划线_
8.4、get与set修饰
class Rect{
numheight;
numwidth;
Rect(this.height,this.width);
get area{
return this.height*this.width;
}
set areaHeight(value){
this.height=value;
}
}
8.5、Dart中我们也可以在构造函数体运行之前初始化实例变量
9、drat的mixins
class C2 extends Person with B, A
可以使用with
检验你是否真的掌握:
1、常量用 final 和 const
2、List与Map 在java上定义的区别
3、操作符is是什么
4、??运算符是什么作用
5、函数中参数[]是什么作用
6、函数中的声明为{}是什么作用
7、函数的参数可以传函数吗
8、什么是Dart箭头函数
9、类的构造方法初始化参数
10、命名构造函数写法
11、私有方法和属性和类怎么写
12、get与set修饰
13、Dart构造函数体运行之前初始化实例变量写法
14、drat的mixins是什么
其他的一些知识:
dart的异步编译的还需要总结stream