zoukankan      html  css  js  c++  java
  • Dart基础

        Dart有3中注释:

    // 行内注释
    /*
    多行注释
    */
    /// 暂时不清楚用途的注释

        Dart具有类型推断功能,可以明确指定变量类型,也可以使用 var 定义变量。但它是一种强类型语言,一旦类型被推断出来,就不能再改变类型了。

        变量命名规则:由数字、字母、下划线和美元符号组成,不能以数字开头。

        使用 const 或 final 定义常量, const 常量在定义时必须赋值, final 常量可以先定义而后赋值,且只能赋值一次。 final 不仅有 const 编译时常量的特性,它还是运行时常量,并且惰性初始化(在运行时第一次使用前初始化)。例如:

    final DateTime date = new DateTime.now();

        上面的 final 不能换为 const 。

        可以用单引号或双引号定义字符串,使用三个单引号或双引号定义多行字符串。在字符串内使用 ${} 可以进行插值,如果只是一个变量可以省略花括号,插值一般优于字符串拼接。

        只有 List 没有 Array ,但是 List 重载了 [] 操作符,可以像操作数组一样操作列表。没有指定类型的列表就像Java中没有指定泛型的列表可以持有所有 Object 一样,可以存放任意类型的元素。

    List<String> s = <String>['first', 'second'];

        使用 is 判断变量类型。

    int a = 13;
    int b = 5;
    double c = a / b; // 2.6
    int d = a ~/ b; // 2

     ??= 在左操作符为空时赋值, int.parse() 和 double.parse() 静态方法将字符串转换为整型或浮点型。

        类似于JavaScript,可以通过设置 length 属性改变列表的长度,列表的很多东西使用属性来实现:

         List list = []; print(list.isEmpty); print(list.isNotEmpty); print(list.reversed.toList()); 

         iterable 使用()显示,集合能否保持顺序?

         List 、 Set 都支持 forEach() 、 every() 、 any() 、 map() 方法,传入方法作为参数。 Map 支持 forEach() 和 map() 方法。

    Map map1 = new Map();
    map1['a'] = 1;
    map1['b'] = 2;
    Map map2 = map1.map((key, value) {
        return MapEntry(key + '-', value + 1);
    });
    print(map2);

         List 和 Set 的 map() 方法都返回 Iterable , Map 的此方法直接返回 Map 。

        方法可以嵌套,可选参数(使用[]指定)和命名参数(使用{}指定)都可以指定默认值。在嵌套方法中引用父方法中的变量,并在父方法中将嵌套方法返回,则嵌套方法持有父方法中变量的引用,不会被回收,实现了父方法范围内的一个全局变量,这就叫闭包。

    class Person {
      String _name;
      int _age;
      Person(this._name, this._age);
      get name {
        return this._name;
      }
    
      set name(newName) {
        this._name = newName;
      }
    }
    
    class Student extends Person {
      String stuid;
      Student(name, age, this.stuid) : super(name, age);
    }

        getter和setter可以实现对私有域的获取和设置,同时可以重新设置名称,也可以实现用域访问的语法实现方法的效果。

  • 相关阅读:
    Spring + MySQL + Mybatis + Redis【二级缓存】执行流程分析
    Spring + MySQL + Mybatis + Redis【二级缓存】
    MyBatis的笔记
    Spring事务:一种编程式事务,三种声明式事务
    笔记
    mybatis-generator自定义注释生成
    做准备的笔记
    常用DOS命令和Linux命令
    数据库MongoDB查询语句--持续更新
    SpringBoot集成websocket实现后端向页面发送消息
  • 原文地址:https://www.cnblogs.com/cbkun/p/10887134.html
Copyright © 2011-2022 走看看