〇、零碎的基础知识
- Dart 有固定的入口函数
// 从这里开始执行
void main(){
...
}
- 一切空值皆为 null
一、语法 (主要与 JavaScript 对比)
- 括号里面写对象参数时不需要大括号围住,直接写
hell(param1:'string',param2:"string2",...);
- 大括号里面的每条完整执行语句尾部都必须得有 ; 跟着。但是作为对象的键值对允许最后一项有多余的逗号,
- 参数不是想传就传的,得先声明我需要参数,你才能给我传,不声明就传参和声明后不传参都是禁忌。
二、新语法
-
??
运算符的意思是当一个东西没有值时,将??
后面的值赋给那个东西。属于默认值赋值操作。(暂时不可用) -
?.
运算符的意思是进行了一次判空操作,只有当 optionalThing 不为空时才会调用 isEnabled。optionalThing 为空时返回null
示例:
// 当 optionalThing 不为空时调用参数 isEnabled,为空则返回 false
optionalThing?.isEnabled??false
// 这种写法是不合法的
optionalThing?.isEnabled == false
// Dart 语言中 null 不可与 true/false 划等号
-
...?
属于是...
的一个扩展。
// 这句话的意思就是先判断 arr 是否为空,如果为空则不进行扩展
const arr = [4,5,6];
const arr2 = [1,2,3,...?arr];
-
..
级联操作符使用实例:
getObj()
..text = "确定"
..class.add("button")
..onClick.listen((e)=>{...})
等价于
var button = getObj();
button.text="确定";
button.class.add("button");
button.onClick.listen((e)=>{...});
网友评论