Dart入门

作者: wl1217 | 来源:发表于2019-05-07 10:36 被阅读33次

    阅读者你好!😊如果您是编程高手,请误笑我的无知。
    由于本人是一个编程界菜鸟,希望通过写博客的方式激励自己不断的学习
    学无止尽,嘿嘿!😊我会继续加油的!

    初识Dart

    • Dart没有public、protected、private,它的私有特性通过在变量、函数前面加下划线(_)如_name

    • 支持anync/await异步处理

    • 常用Dart开发库

      Dart常用开发库.png

    变量与基础数据类型

    变量

    • var 关键字声明,var name;

    任何类型变量没有初始化都为null

    • 常量和固定值

      1. final 值只能被设定一次

      2. const 编译时的常量,const 参与四则运算,会自动获得一个const值

    基本数据类型

    • Number(num)

      1. int

      2. double

      ads、ceil、floor常用方法

    • String

      • ‘’、“”、‘’‘都可以
          var name = "hello";
          var name1 = 'hello';
      
    • Boolean(bool)
      dart是强bool类型检查的,值必须是true、false才被认为是true、false

    • List
      类似Javascript的Array对象

          var l = [1,2,3,4,5];
      
          print(l.length)
      
    • Map
      key、value

          var map = {
              'name': 'adwd'
          }
          // 通过构造函数
          var map1 = new Map();
          map1['name'] = 'adasd'
      

    函数

    函数属于对象(Function)

    • 普通函数
    bool equal(String a, String b){
        return a == b;
    }
    
    • 可选参数([]表示可选参数)
    void sayHi(String name, int age, [String xxx])
    
    • 参数默认值(使用=号)
    void test(String name, int age = 30){}
    
    • 函数返回值

    所有函数都会有返回值,没有返回值则返回null,没有返回值的函数、系统会在最后自动添加隐式return语句

    运算符

    dart运算符.png

    类型检测符

    • as 类型转换
    (user as User).name = 'Flutter';
    
    • is 判断类型

    • is!

    赋值操作符

    • = 等于号

    • ??= 表示,当为null时赋值,不为null时,不赋值

    b ??= '哈哈哈'
    

    逻辑运算符

    • &&

    • ||

    • !expr

    位运算符

    • &

    • |

    • ^

    • ~expr:一元位补码

    • <<

    • >>

    条件表达式

    • expr ? a : b

    • expr1 ?? expr2 表示:expr1 为非空,返回本身,否则返回expr2

    级联操作(..)

    • ..可以对同一个对象执行一系列操作(类似于Java中的..)
    querySelect('#sd')
        ..text = '确定'
        ..classes.add('MyClass')
        ..onClick.listen((e) => window.alert('确定'))
    

    流程控制语句

    • if-else

    • for

    • while、do-while

    • breack、continue

    • switch-case

    • assert

    • try-catch、throw

    面向对象

    一个类可以继承多个类,但是所以的都继承至Object

    • 创建一个类

      class User{
          String name,
          int age
      } 
      
    • 构造函数

      1. 常规构造函数
      class User{
          String name;
          int age;
      
          //User(String name , int age){
          //    this.name = name;
          //    this.age = age;
          //}
      
          // 简化版
          User(this.name, this.age);
      }
      
      1. 命名的构造函数
      class User{
          String name;
          int age;
      
          User(this.name, this.age);
      
          User.fromJson(Map json){
              name = json['name'];
              age = json['age'];
          }
      }
      
      1. 构造函数初始化列表
        除了调用父类的构造函数,也可以通过初始化列表在子类的构造函数运行前初始化实例的成员变量值
      class User{
          final String name;
          final int age;
      
          User(name,age) : 
              name = name,
              age = age;
      }
      
    • 使用new关键字实例化

      var user = new User('ad',21);
      

    异步支持

    相关文章

      网友评论

        本文标题:Dart入门

        本文链接:https://www.haomeiwen.com/subject/scasoqtx.html