欢迎使用6miu-markdown编辑器

    xiaoxiao2021-12-14  22

    一些重要概念

    所有的东西都是对象,所有的对象都是类的实例,所有的对象都继承自内置的Object类。程序中只当数据类型是为了指出自己的使用意图,并帮助语言进行语法检查。但是,指定类型不是必须的。Dart 代码在运行前解析。指定数据类型和编译时的常量,可以提高运行速度。Dart 程序有统一的程序入口: main()。Dart支持顶级的变量定义。Dart没有public、protected、private的概念,”_”开头表示私有。没有初始化的变量都会被赋予默认值 null。final的值只能被设定一次。const 是一个编译时的常量,可以通过const来创建常量的值,var c=const[];const[] 本身是构造函数。实例变量可以是final,但不能是const。

    关键字

    abstractcontinuefalsenewthisasdefaultfinalnullthrowassertdeferredfinallyoperatortrueasyncdoforparttryasyncdynamicgetrethrowtypedefawaitelseifreturnvarbreakenumimplementssetvoidcaseexportimportstaticwhilecatchexternalinsuperwithclassextendsisswitchyieldconstfactorylibrarysyncyield

    内置类型

    is、is!操作符判断对象是否为指定类型,如num、String等。 * num * int 取值范围:-2^53 to 2^53 * double

    // String -> int var one = int.parse('1'); // String -> double var onePointOne = double.parse('1.1'); // int -> String String oneAsString = 1.toString(); // double -> String 注意括号中要有小数点位数,否则报错 String piAsString = 3.14159.toStringAsFixed(2);

    String

    Dart 的String 是 UTF-16 编码的一个队列。‘…’,”…”表示字符串。”’…”’,“”“…”“”表示多行字符串。r’…’,r”…”表示“raw”字符串。

    bool

    Dart 是强bool 类型检查,只有bool 类型的值是”true“ 才被认为是true。

    List

    // 使用List的构造函数,也可以添加int参数,表示List固定长度,不能进行添加 删除操作 var vegetables = new List(); // 或者简单的用List来赋值 var fruits = ['apples', 'oranges']; // 添加元素 fruits.add('kiwis'); // 添加多个元素 fruits.addAll(['grapes', 'bananas']); // 获取List的长度 assert(fruits.length == 5); // 获取第一个元素 fruits.first; // 获取元素最后一个元素 fruits.last; // 利用索引获取元素 assert(fruits[0] == 'apples'); // 查找某个元素的索引号 assert(fruits.indexOf('apples') == 0); // 利用索引号删除某个元素,返回删除的元素 var appleIndex = fruits.indexOf('apples'); fruits.removeAt(appleIndex); // 删除指定元素,成功返回true,失败返回false fruits.remove('apples'); // 删除最后一个元素,返回删除的元素 fruits.removeLast(); // 删除指定范围元素,含头不含尾,成功返回null fruits.removeRange(start,end); // 删除指定条件的元素,成功返回null fruits.removeWhere((item) => item.length >6); // 删除所有的元素 fruits.clear(); assert(fruits.length == 0); // sort()对元素进行排序,传入一个函数作为参数,return <0表示由小到大, >0表示由大到小 fruits.sort((a, b) => a.compareTo(b)); Map // Map的声明 var hawaiianBeaches = { 'oahu' : ['waikiki', 'kailua', 'waimanalo'], 'big island' : ['wailea bay', 'pololu beach'], 'kauai' : ['hanalei', 'poipu'] }; var searchTerms = new Map(); // 指定键值对的参数类型 var nobleGases = new Map<int, String>(); // Map的赋值,中括号中是Key,这里可不是数组 nobleGase[54] = 'dart'; //Map中的键值对是唯一的 //同Set不同,第二次输入的Key如果存在,Value会覆盖之前的数据 nobleGases[54] = 'xenon'; assert(nobleGases[54] == 'xenon'); // 检索Map是否含有某Key assert(nobleGases.containsKey(54)); //删除某个键值对 nobleGases.remove(54); assert(!nobleGases.containsKey(54)); Runes Dart 中 runes 是UTF-32字符集的string 对象。 string = 'Dart'; string.codeUnitAt(0); // 68 返回指定位置index的16位UTF-16编码单元 string.codeUnits; // [68, 97, 114, 116] 返回一个只读的List,包含字符串中所有的UTF-16编码单元。 Symbol symbol字面量是编译时常量,在标识符前面加‘#’。如果是动态确定,则使用Symbol构造函数,通过new来实例化。

    函数

    所以的函数都会有返回值。如果没有指定函数返回值,则默认的返回值是null 。没有返回值的函数,系统会在最后添加隐式的return 语句。

    函数可以有两中类型的参数:

    必须的——必须的参数放在参数列表的前面。可选的——可选的参数跟在必须的参数后面。
    可选的参数

    可以通过名字或位置指定可选参数,但是两个不能同时存在。 * 命名可选参数使用{},默认值使用冒号“:”,调用时需指明参数名,与顺序无关。 * 位置可选参数使用[],默认值使用等号“=”,调用时参数按顺序赋值。

    操作符

    描述操作符一元后置操作符expr++ expr– () [] . ?.一元前置操作符-expr !expr ~expr ++expr –expr乘除 / % ~/ 加减 - 位移<< >>按位与&按位异或^按位或|关系和类型判断 = > <= < as is is! 等== !=逻辑与&&逻辑或||若为空??三目运算符expr1 ? expr2 : expr3级联..赋值= *= /= ~/= %= += -= <<= >>= &= ^=
    转载请注明原文地址: https://ju.6miu.com/read-970680.html

    最新回复(0)