dart入门

记个笔记吓吓你

数据类型

和贵族学校一样乱的几个东西,不是数据类型

  • var
  • const
  • final

跟正常沾点边的

  • int
  • double
  • bool
  • List
  • num

String字符串

写法 描述
单引号
双引号
三引号 可以换行

List集合

  • var list = [“123”, “456”];

运算符

符号 功能
~/ 取整
??= 左空赋右值
?? x ?? y 等价于 x ? x : y

对象

  • // 奇怪的构造方法
    Person.setPersonInfo(String username, int age){
        // to do something
    }
    
    1
    2
    3
    4

    - ```dart
    // 奇怪的构造方法 没错他就这么长,像韩国人一样
    Person(this.name, this.age);
  • 调用全局属性需要this.age

  • 设置私有方法需要在变量名前加下划线

  • // 奇怪的写法 这样做就当新变量用了
    get area{
        return this.height * this.width;
    }
    // 同上,当变量赋值就行
    set areaHeight(int height){
        this.height = height;
    }
    
    1
    2
    3
    4
    5
    6

    - ```dart
    // 构造器 实例化之前干的 不止可以写这个
    Rect():height=2,width=10{
    // to do nothing
    }
  • // 链式编程 很乱总之
    person..name='sdadgz'
        ..age=114514
        ..printInfo();
    
    1
    2
    3
    4
    5
    6

    - ```dart
    // 在继承和实现之外多个with
    class C with A, B{
    // to do nothing
    }

异步

1
2
3
4
fun() async{
await fun1();
return 'hello world';
}

第三方依赖

Page 1 | Top packages (pub.dev)

1
2
import '[path]' show [some]; // 局部引入
import '[path]' hide [some]; // 和上面取反

新特性

1
2
3
4
5
6
7
8
9
10
11
12
// 空安全
String? str = "sdadgz"; // 可空
// 断言
str!.length; // 空报错,非空无事
late; // 对象全部变量前,没初始化加上
requered; // 函数变量前,没默认值加上
// 神奇的东西,创建同一个对象
new Object();
const Object();
// 常量构造函数 new可以省略???爷青结
final; // 修饰全局变量
const; // 修饰构造函数 和 替代new