目录
- 流程控制语句
- 异常
- 类
- 泛型
流程控制语句
if语句
void displayName0(String name){
if(name==null){
print("2020");
}else{
print(name);
}
}
void displayName1(String name){
print(name==null?"2019":name);
}
void displayName2(String name){
print(name??"2019");
}
void main() {
var name = null;
displayName1(name);
}
for循环
a.标准for循环
b.forEach
c.for… in
void main() {
var list = [1,2,3,4];
//标准for循环打印数据
for(var i=0;i<list.length;i++){
print(list[i]);
}
//forEach打印数据
list.forEach((e)=> print(e));
//for...in 打印数据
for(var item in list){
print(item);
}
}
while循环
switch语句
break 和 continue
break跳出当前循环结构。
continue结束当次的循环,进行下一次循环。
通java
断言语句
异常
抛出异常
捕获异常
类
构造函数
默认构造函数
命名构造函数
重定向构造函数
常量构造函数
class ConstBean{
final int x;
final int y;
const ConstBean(this.x,this.y);
}
void main() {
ConstBean a = const ConstBean(1,2);
ConstBean b = const ConstBean(1,2);
assert(identical(a,b));
ConstBean c = ConstBean(1,2);
// a 和 c并不是一个实力,有力c的实例化,没有增加const关键字
assert(identical(a,c));
print('hello');
}
工厂构造函数
继承时,构造函数的调用流程
class Person {
Person.fromJson(Map data){
print("Person");
}
}
class Student extends Person{
Student.fromJson(Map data):super.fromJson(data){
print("Student");
}
}
void main() {
Student s = Student.fromJson({});
}
方法
class Point{
num x,y;
Point(this.x,this.y);
num distanceTo(Point d){
var dx = d.x - x;
var dy = d.y - y;
return sqrt(dx*dx+dy*dy);
}
}
void main() {
Point p = Point(1,2);
Point p1 = Point(4,5);
print (p1.distanceTo(p));
}
getter 和 setter
抽象方法
抽象类
隐式接口
扩展类
可重写的运算符
枚举类型
mixin模式继承
abstract class Animal{}
abstract class Bird{}
mixin Walker{
void walk(){
print("I am walking");
}
}
mixin Flyer{
void fly(){
print ("I am flying");
}
}
class Parrot extends Bird with Walker,Flyer{}
void main() {
Parrot parrot = Parrot();
parrot.fly();
parrot.walk();
}