1.dynamic 动态定义:未定义的变量在debug模式时会显示为该类型。
2.const和final:const编译时常量,final运行时常量。都为定义常量关键字,只是内存申请前后问题。const编译时即申请,final运行时申请。
3.未初始化的变量初始值都为null 包括int。
4.数据类型 num(int和double),string(类似kotlin可以使用"${变量名}哈哈"形式拼接字符串),bool (assert断言,在debug模式下生效,生产模式使用时若为false则异常终止) ,list集合(dart中数组和集合一样都用[ ]),map({key,value} 键和值可以为任意值,但是键不能相同。value可以为空字符串或null)。set(不能重复且无序 new Set() )。
5.方法中可以使用可选参数。test(int x,[int y]) 用[ ]来包住可选参数, test({int x,int y=0}) 用{ }包起来的 当不传时有默认值,使用时有点特殊 test(x:1,y:2)或test(x:1)。
6.dart中和java一样只能继承一个父类 ,但是有个新语法 Mixin, Mixin ClassA{ },Mixin ClassB; class ClassC with ClassB,ClassA{ }
通过with ClassC可以调用 可以调用ClassA和ClassB中的属性和方法,若该方法在ClassA ClassB ClassC 中也存在则调用ClassC中的,否则调用最后一个with的,相当于后面的把前面的覆盖了。
7.Dart中通过import引用库,可以引用自己写的dart文件,或者dart sdk中的,或者pub网站仓库中的。 如何引用pub网站中的第三发库 可以直接按照https://pub.dev/网站提示。
引入库时,有些可能不是每次都能用到,dart提供了延迟加载库,即当用的该库时才会去加载。
import 'dart:math' deferred as math 执行该方法时才去加载库 math.loadLibrary() 后面就可以使用库中方法了,但是要注意 该库已被设置为math变量了。
8.异步操作
多个分支