Dart的数据类型

  1. Number int,double
  2. String
  3. Booleans
  4. List
  5. Map

一、入口方法(和Java类似)

  1. void main(){
  2. print("hello world")
  3. }

二、变量

2-1 不指明类型

  1. void main(){
  2. var b = 20;
  3. print(b)
  4. }

2-2 指明类型

  1. void main(){
  2. int a= 10;
  3. double d = 10.432423;
  4. bool b = true;
  5. String str = "hello world";
  6. print(a);
  7. }

三、常量

  1. void main(){
  2. const int a = 10;
  3. final b = 20;
  4. }

四、Map,List

  1. void main(){
  2. Map obj = {"name":"cheng","age":20};
  3. List arr = [1,2,3];
  4. print(obj["name"]);
  5. }

五、字符串中使用变量

  1. void main(){
  2. var s = "hello";
  3. var t = "$s world";
  4. print(t);
  5. }

六、List

  1. 1.增加
  2. - add() 向后添加
  3. - insert(index,element)
  4. - length //属性可以获取List的长度
  5. 2.删除
  6. - remove(element) //移除某个元素
  7. - removeAt(index) //删除对应下标的元素
  8. - removeLast() //删除最后一位元素
  9. - removeRange(start,end) //范围删除
  10. - removeWhere() //根据条件删除
  11. void main(){
  12. List<String> arr = ["html","css","javascript","vue"];
  13. arr.removeWhere((item){
  14. return item =="html";
  15. });
  16. print(arr);
  17. }
  18. 3.修改
  19. - setRange(start,end,list) //修改几个就传几个值 范围修改
  20. void main(){
  21. List<String> arr = ["html","css","javascript","vue"];
  22. arr.setRange(0, 2, ["react","angular"]);
  23. print(arr);
  24. }
  25. - replaceRange(start,end,list) //范围替换,可以不传固定的位数
  26. void main(){
  27. List<String> arr = ["html","css","javascript","vue"];
  28. arr.replaceRange(1, 3, ["react"]);
  29. print(arr);
  30. }
  31. 4.查询
  32. - indexOf() //读取元素的下标值
  33. - contains() //判断是否包含某个元素
  34. 5.遍历
  35. - forEach
  36. - every
  37. - any //相当于javascript中的some
  38. - map //返回一个Iterable
  39. void main(){
  40. List<String> arr = ["html","css","javascript","vue"];
  41. var b= arr.map((item){
  42. return item+"s";
  43. });
  44. print(b);
  45. print(b is List); //false
  46. print(b.toList());
  47. }
  48. 6.其他
  49. - join()

七、Set 集合

  1. //特点:元素都是唯一的,无序
  2. void main() {
  3. // 值是唯一的
  4. var arr = {"html","css","javascript","css"};
  5. print(arr);
  6. print(arr is Set);
  7. }
  8. - add
  9. - List.from() 拷贝
  10. void main() {
  11. // 值是唯一的
  12. var arr = {"html","css","javascript"};
  13. arr.add("react");
  14. // print(arr);
  15. // List
  16. var list = List.from(arr);
  17. print(list);
  18. }
  19. //List转换为Set
  20. //set再转换为List
  21. void main() {
  22. // 值是唯一的
  23. var arr = [1,2,3,2];
  24. var s = new Set();
  25. s.addAll(arr);
  26. print(s.toList());
  27. }

八、Map

  1. void main() {
  2. // 值是唯一的
  3. Map obj = {"name":"cheng","age":20};
  4. print(obj.keys.toList());
  5. print(obj.values.toList());
  6. }
  7. - remove() //删除某个属性
  8. void main() {
  9. var obj = {"name":"cheng","age":20};
  10. obj.remove("name");
  11. print(obj); //{"age":20}
  12. }
  13. //js实现
  14. var obj = {"name":"cheng","age":20,"sex":"男"};
  15. delete obj.name;
  16. console.log(obj);
  17. --addAll()
  18. void main() {
  19. var obj = {"name":"cheng","age":20};
  20. obj.addAll({"sex":"男"});
  21. print(obj); //{name: cheng, age: 20, sex: 男}
  22. }
  23. //遍历
  24. --forEach
  25. -- map//返回值必须mapEntry
  26. void main() {
  27. var obj = {"name":"cheng","age":"20"};
  28. var m = obj.map((key,value){
  29. return new MapEntry(key,value+"s");
  30. });
  31. print(m); //{name: chengs, age: 20s}
  32. }

九、函数

  1. //1.没有返回值
  2. void main(){
  3. void go(){
  4. print("hello world");
  5. }
  6. }
  7. //2.有返回值
  8. void main(){
  9. String test(){
  10. return "good";
  11. }
  12. }
  13. //3.泛型函数
  14. void main(){
  15. T getData<T>(T value){
  16. return value;
  17. }
  18. getData<String>("hello world");
  19. }
  20. //函数的默认参数 以List的形式传递的
  21. void main(){
  22. void getData([c,a="hello",b="good"]){
  23. print(a+b);
  24. print(c);
  25. }
  26. getData("world");
  27. }
  28. void main(){
  29. // 箭头函数 只能有一行代码
  30. void go()=>print("hello");
  31. go();
  32. }
  33. //自调函数 不带参数
  34. void main(){
  35. ((){
  36. print("hello world");
  37. })();
  38. }
  39. //带参数的自调
  40. void main(){
  41. ((n){
  42. print(n);
  43. })(10);
  44. }

十、面向对象

  1. class Person {
  2. String name;
  3. int age;
  4. // 构造函数就是构造一个对象的函数
  5. Person(String name,int age){
  6. this.name = name;
  7. this.age = age;
  8. }
  9. }
  10. //构造函数的简写
  11. class Person {
  12. String name;
  13. int age;
  14. // 构造函数就是构造一个对象的函数
  15. Person(this.name,this.age);
  16. }

10-1 继承

  1. class Person {
  2. String name;
  3. int age;
  4. // 构造函数就是构造一个对象的函数
  5. Person(this.name,this.age);
  6. }
  7. class Student extends Person {
  8. String skill;
  9. Student(String name, int age,this.skill) : super(name, age);
  10. }
  11. import 'Person.dart';
  12. void main(){
  13. // 实例化对象时,构造函数会自动触发
  14. Student s = new Student("cheng",20,"lol-code");
  15. print(s.skill);
  16. }