• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Dart基础

互联网 diligentman 2周前 (01-14) 8次浏览

Dart基础

1.变量与常量


变量

  • var
  • Object :对象
  • dynamic :

常量

  • final: 运行时分配内存
  • const: 编译时分配内存

2.数据类型


  • int 整型
  • double 浮点型
  • String 字符串
  • List 数组
  • Map 对象

3.函数


//返回值类型  方法名  默认参数{} 使用:test1(1,str:'ccc')
String test1(int id,{String str=""}){
  Map map={1:'aaa',2:'bbb'};
  return map[id] + str;
}
//可选参数[] 使用: test2(2,'ddd')
String test2(int id,[String str]){
  Map map={1:'aaa',2:'bbb'};
  return map[id] + (str != null ? str :'');
}
//  匿名函数
List list = [1,2,3];
list.forEach((element) {
  print(element);
});

4.类与继承


  • 类:class
  • 继承:extends
void main() {

  var p = new Person('su',18);
  p.say();

  var p2 = new Student('su',18,'一年级');
  p2.say();

}

//类
class Person{
  String name;
  int age;
  Person(String name,int age){
    this.name = name;
    this.age = age;
  }
  void say(){
     print(this.name+'=='+this.age.toString());
  }
}

//继承
class Student extends Person{
  String className;
  Student(String name, int age,String className) : super(name, age){
    this.className = className;
  }
  //重写父类say
  @override
  void say(){
    super.say();//调用父类say方法
    print(this.name+'=='+this.age.toString()+'=='+this.className);
  }
}

5.mixin 与 抽象类


  • 继承多个类 :with
  • 抽象类:abstract 只定义方法,不实现
void main() {
    var p = new Person('s',18);
    p.eat();
    p.sleep();
    p.say();

}

class Eat{
  void eat(){
    print('eat');
  }
  void say(){
    print('bbb');
  }
}

class Sleep{
  void sleep(){
    print('sleep');
  }
  void say(){
    print('aaa');
  }
}
// with 继承两个类
class Person extends Student with Eat,Sleep{
  String name;
  int age;
  Person(name,age){
    this.name =name;
    this.age =age;
  }
  void say(){
    print(this.name+'=='+this.age.toString());
  }
  //继承抽象类student,需要实现类的方法
  @override
  void study() {
     print('study');
  }
}

//抽象类, 只定义方法,不实现
abstract class Student{
  void study();
}

6.使用库


  • 本地引用自己编写的 import ‘package/test.dart’;
  • 引用库 :import ‘package:http/http.dart’ as http;

    • 地址:https://pub.dev/ ;
    • 修改pubspec.yaml配置文件
  • 引用系统自带库:import ‘dart:math’;
  • 延迟加载库:deferred as ;

    • 等待加载完后在使用 await math.loadLibrary();
  • 导入库的一部分:show hide

7.异步处理


  • async await
  • Future
void main() async {
  Future.wait([
    Future.delayed(new Duration(seconds: 1),(){
      print(1);
    }),
    Future.delayed(new Duration(seconds: 2),(){
      print(2);
    })
  ]).then((value) {
    print(value);
  });
  await Future.delayed(new Duration(seconds: 1),(){
    print(1111);
  });
  print(222);
}

程序员灯塔
转载请注明原文链接:https://www.wangt.cc/2021/01/dart%e5%9f%ba%e7%a1%80/
喜欢 (0)