Flutter 学习笔记

128 阅读2分钟

一.Dart 学习

1.安装

  • 安装dart 官网
    brew tap dart-lang/dart
    $ brew install dart
    
  • VScode 配置dart支持和code runner

2.Dart 基本使用

定义方式

  • 定义变量方式 var 或者 基本类型(String, int等);切修改值时数据类型不能改变
  • 定义常量方式 const 或 final (const是定义时赋值,final是惰性的 使用时赋值)

基本数据类型

  • String 字符串

    1. 三个单引号内可以写多行字符串

    2. 字符串拼接 str1 + str2'$str1 $str2'

  • int(整数类型)、double(浮点数类型、可以整数亦可以小数)

    1. 运算符 + - * /
  • bool 布尔类型

    1.只能是true false

    2.条件判断 == 判断是否相等,不会进行类型转换

  • List 数组

    1. var arr = ["test", 1, true] length 下标从0开始

    2. 指定类型:var test = <String>['张张', 'test']

    3. 增加数据 test.add('test2')

    4. var test2 = new List() 新版本已废弃此方法

    5. var test3 = List.filled(3, "") 限制长度(且无法修改),并填充

      image.png

      image.png

  • Map 对象

    1. var person = {name: '张三', age: 18 };
    2. var p = new Map(); p['xxx'] = 'xxx'
  • Set 无序对象 去重

  • 类型判断 is str is String

运算符

  • 算数运算符 加减乘除 取整a~/b 取余a%b
  • 关系运算符 a == ba != b> < <= >=
  • 逻辑运算符 && ||??=为空时赋值
  • 复合赋值运算符 += -= *= /= %= ~/=
  • 条件表达式 switch、 三元表达式、??运算符

类型转换

  • toString()

  • int.parse double.parse

  • bool 转换 str.isEmpty是否为空

    循环语句

    • for (int i = 1; i < 10; i++){}
    • while: do{ }while()
    • continue break 继续和跳出

3.函数

main

 *任何应用都必须有一个顶级 main() 函数,作为应用服务的入口。 main() 函数返回值为空,参数为一个可选的 List<String> 。*   
    void main(List<String> arguments) {
        print(arguments);
        assert(arguments.length == 2);
        assert(int.parse(arguments[0]) == 1);
        assert(arguments[1] == 'test');
    }

创建函数方式和js类似

  • void 定义函数 void myFn() {}
  • 箭头函数 () => {}

类:Class

abstract 抽象类:抽象类不能实例化。 抽象类通常用来定义接口,以及部分实现。 如果希望抽象类能够被实例化,那么可以通过定义一个 工厂构造函数 来实现。

implements 实现一个或者多个接口, 并实现每个接口要求的 API

abstract 抽象类

extends 扩展类

泛型

1. 正确指定泛型类型可以提高代码质量。
2. 使用泛型可以减少重复的代码。
3. `T getData<T>(T value) {
        return value;
      } `
4. 参数的类型 (List<T>)
5. 局部变量的类型 (T tmp)
  ``` 
    T first<T>(List<T> ts) { 
        // Do some initial work or error checking, then... 
        T tmp = ts[0]; 
        // Do some additional checking or processing... 
        return tmp; 
    }
   ```

自定义库 import

安卓环境