快速回顾·Dart

一.Hello World

1.主函数

void main(List<String> args){

}

2.导库
import
①标准库 import “dart:io”
②自定义 import “路径”
③Pub import “package:路径”
④show;hide;as;library;export

二.变量类型和数据类型

1.关键字:const/final/var

2.数据类型:object/dynamic/int/double/boolen/string

①const和final要在定义时赋值,不可改,const编译时,final运行时
②dynamic可跨数据类型赋值,其他不可
③真假值判断时必须为true或false,不可用其他类型代替
④’’/""/’’’ ‘’’
⑤$变量名 ${变量名} ${变量名.runtimeType}
⑥dynamic比object灵活

三.集合类型

1.List/Set/Map

①List < dynamic > args;Set < dynamic > args;Set < dynamic, dynamic > args
②List自动排序可重复,Set无序不可重复
③List.from(Set.from())
④for dynamic arg in List< dynamic > args
⑤打印List.foreach((item)=> print(item)) (匿名函数)

四.函数

1.箭头函数
2.必传参数 / 命名可选参数{} / 位置可选参数[]

①add(num1,num2) => nun1+num2
②默认参数必须为可选参数
③匿名函数
④词法作用域,向外查找
⑤闭包

main(List<String> args) {
  add(num a) {
    return (num b) {
      return b + a;
    };
  }

  var sum = add(2);
  print(add(2)); //4
  print(add(6)); //8

⑥参数可为函数

五.运算符

1.??=
2.??
3.级联运算符(…)

六.流程控制

七.类

1.构造函数
①语法糖
②命名构造函数(不支持函数的重载的解决办法)

class Person{
	String name;
	int age;
	
	Person(this.name,this.age); //语法糖
	Person.fromMap(Map<String,int> map){
		this.name=map["name"];
		this.age=map["age"];
	} //Person person=Person.fromMap(Map<String,int> map);
	
}

③初始化列表
④重定向构造函数

class Rectangle{
	double width;
	double height;
	double area;
	Rectangle(this.width,this.height):this.area=this.width*this.height;
	Rectangle.inputWidth(double width):this(width,0);
}

⑤常量构造函数

class Person {
  final String name;
  const Person(this.name);
}

Person perone=const Person("A");
Person pertwo=const Person("B");

identical(perone,pertwo) //True

⑥工厂构造函数
⑦setter和getter
2.继承
①extends
②override
③子类中赋值父类中的属性

class Animal{
	int age;
	Animal(this.age);
}
class Dog extends Animal{
	string name;
	Dog(this name,int age):super(age);
}

3.抽象类
①不能实例化
②定义抽象函数,继承的类必须重载覆写函数

abstract class Animal{
	void eat();
}

4.隐式接口
①implements
②所有方法必须重新实现

5.Mixin

mixin Runner{
	void running(){
		print("running");
	}
}
mixin Swimer{
	void swimming(){
		print("swimming");
	}
}

class Person with Runner,Swimer{
	
}

5.泛型

class Location<T>{
	T x;
	T y;
	Location(this.x,this.y);
}

Location lone=Location<int>(1,2);
Location ltwo=Location<double>(1.1,2.2);
T popFirst(List<T> list){
	return list[0]
}

popFirst(List<int> list);
popFirst(List<double> list);
发布了19 篇原创文章 · 获赞 4 · 访问量 525

猜你喜欢

转载自blog.csdn.net/zhuangww05/article/details/104688014