Dart的数据类型
Number  int,doubleStringBooleansListMap
一、入口方法(和Java类似)
void main(){    print("hello world")}
二、变量
2-1 不指明类型
void main(){  var b = 20;  print(b)}
2-2 指明类型
void main(){  int a= 10;  double d = 10.432423;  bool b = true;  String str = "hello world";  print(a);}
三、常量
void main(){  const int a = 10;  final b = 20;}
四、Map,List
void main(){    Map obj = {"name":"cheng","age":20};    List arr = [1,2,3];    print(obj["name"]);}
五、字符串中使用变量
void main(){    var s = "hello";    var t = "$s world";    print(t);}
六、List
1.增加- add() 向后添加- insert(index,element) - length  //属性可以获取List的长度2.删除- remove(element) //移除某个元素- removeAt(index) //删除对应下标的元素- removeLast() //删除最后一位元素- removeRange(start,end) //范围删除- removeWhere() //根据条件删除void main(){    List<String> arr = ["html","css","javascript","vue"];    arr.removeWhere((item){      return item =="html";    });    print(arr);}3.修改- setRange(start,end,list) //修改几个就传几个值 范围修改void main(){    List<String> arr = ["html","css","javascript","vue"];    arr.setRange(0, 2, ["react","angular"]);    print(arr);}- replaceRange(start,end,list) //范围替换,可以不传固定的位数void main(){    List<String> arr = ["html","css","javascript","vue"];    arr.replaceRange(1, 3, ["react"]);    print(arr);}4.查询- indexOf() //读取元素的下标值- contains() //判断是否包含某个元素5.遍历- forEach- every- any  //相当于javascript中的some- map  //返回一个Iterablevoid main(){    List<String> arr = ["html","css","javascript","vue"];    var b= arr.map((item){      return item+"s";    });    print(b);    print(b is List); //false    print(b.toList());}6.其他- join()
七、Set 集合
//特点:元素都是唯一的,无序void main() {  // 值是唯一的  var arr = {"html","css","javascript","css"};  print(arr);  print(arr is Set);}- add- List.from()   拷贝void main() {  // 值是唯一的  var arr = {"html","css","javascript"};  arr.add("react");  // print(arr);  // List  var list = List.from(arr);  print(list);}//List转换为Set//set再转换为Listvoid main() {  // 值是唯一的  var arr = [1,2,3,2];  var s = new Set();  s.addAll(arr);  print(s.toList());}
八、Map
void main() {  // 值是唯一的  Map obj = {"name":"cheng","age":20};  print(obj.keys.toList());  print(obj.values.toList());}- remove() //删除某个属性void main() {  var obj = {"name":"cheng","age":20};  obj.remove("name");  print(obj);  //{"age":20}}//js实现var obj = {"name":"cheng","age":20,"sex":"男"};delete obj.name;console.log(obj);--addAll()void main() {  var obj = {"name":"cheng","age":20};  obj.addAll({"sex":"男"});  print(obj); //{name: cheng, age: 20, sex: 男}}//遍历--forEach-- map//返回值必须mapEntryvoid main() {  var obj = {"name":"cheng","age":"20"};  var m = obj.map((key,value){    return new MapEntry(key,value+"s");  });  print(m); //{name: chengs, age: 20s}}
九、函数
//1.没有返回值void main(){  void go(){    print("hello world");  }}//2.有返回值void main(){  String test(){    return "good";  }  }//3.泛型函数void main(){  T getData<T>(T value){    return value;  }  getData<String>("hello world");}//函数的默认参数  以List的形式传递的void main(){  void getData([c,a="hello",b="good"]){    print(a+b);    print(c);  }  getData("world");}void main(){  // 箭头函数 只能有一行代码  void go()=>print("hello");  go();}//自调函数 不带参数void main(){  ((){    print("hello world");  })();}//带参数的自调void main(){  ((n){    print(n);  })(10);}
十、面向对象
class Person {  String name;  int age;  // 构造函数就是构造一个对象的函数  Person(String name,int age){    this.name = name;    this.age = age;  }}//构造函数的简写class Person {  String name;  int age;  // 构造函数就是构造一个对象的函数  Person(this.name,this.age);}
10-1 继承
class Person {  String name;  int age;  // 构造函数就是构造一个对象的函数  Person(this.name,this.age);}class  Student extends Person {  String skill;  Student(String name, int age,this.skill) : super(name, age);}import 'Person.dart';void main(){  // 实例化对象时,构造函数会自动触发  Student s = new Student("cheng",20,"lol-code");  print(s.skill);}