1.可以放在变量中的所有东西都是一个对象,每个对象都是一个类的实例。数字、函数和 null对象。除了null,所有对象都继承自Object该类。
2.尽管 Dart 是强类型的,但类型注释是可选的,因为 Dart 可以推断类型。在上面的代码中,number 被推断为类型int
3.如果您启用null 安全,则变量不能包含,null除非您说它们可以。您可以通过在变量?类型的末尾放置一个问号 ( )来使变量可以为空。例如,一个类型的变量int?可能是一个整数,也可能是null. 如果你知道一个表达式永远不会计算为,null但 Dart 不同意,你可以添加!断言它不是空的(如果是,则抛出异常)。一个例子:int x = nullableButNotNullInt!
4.当您想明确表示允许任何类型时,请使用该类型Object? (如果您已启用 null 安全)、Object, 如果您必须将类型检查推迟到运行时 —可以考虑特殊类型dynamic
5.Dart 支持泛型类型,例如List(整数列表)或List(任何类型的对象列表)。
6.Dart 支持顶级函数(例如main()),以及绑定到类或对象的函数(分别为静态和实例方法)。您还可以在函数内创建函数(嵌套或局部函数)。
7.同样,Dart 支持顶级变量,以及绑定到类或对象的变量(静态和实例变量)。实例变量有时称为字段或属性。
8.与Java,Dart不具备关键字public,protected和private。如果标识符以下划线 ( _)开头,则它对其库是私有的。有关详细信息,请参阅 库和可见性。
9.标识符可以以字母或下划线 ( _)开头,后跟这些字符加数字的任意组合。
10.Dart 有表达式(有运行时值)和 语句(没有)。例如,条件表达式 condition ? expr1 : expr2的值为expr1orexpr2。将其与没有价值的if-else 语句进行比较。一个语句通常包含一个或多个表达式,但一个表达式不能直接包含一个语句。
11.Dart 工具可以报告两种问题:警告和错误。警告只是表明您的代码可能无法工作,但它们不会阻止您的程序执行。错误可以是编译时或运行时。编译时错误完全阻止代码执行;运行时错误会导致在代码执行时引发异常。
| 基本数据类型 | 说明 |
|---|---|
| int | 整型 |
| double | 浮点型 |
| num | num是int,double的基类 |
| String | 字符类型 |
| bool | 布尔 |
Dart中的基本数据类型中,基本和Java相似都有int,double,String等类型,区别是没有像short,float,char这样的小类型。所有类型都是对象,不需要像Java一样拆箱装箱的操作。例如:String age = 20.toString();数字也是对象,可以直接进行方法操作。
| 集合 | 说明 |
|---|---|
| List | 列表集合 |
| Map | 键值对 |
| Set | 无序集合 |
| 运算符 | 说明 |
|---|---|
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除 |
| ~/ | 取整 |
| % | 取余 |
| ++ | 自增 |
| -- | 自减 |
| 运算符 | 说明 |
|---|---|
| == | 判断值或内容是否相等 |
| != | 判断是否不相等 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| 位运算符 | 说明 |
|---|---|
| & | 与 |
| | | 或 |
| ^ | 异或 |
| ! | 取反 |
| && | 短路与 |
| || | 短路或 |
| 运算符 | 说明 |
|---|---|
| += | int i = 2; print(i+=5); 输出:7 |
| -= | int i = 2; print(i-=5); 输出:-3 |
| *= | int i = 2; print(i*=5); 输出:10 |
| /= | double i= 2; print(i/=5);输出:0.4 |
| %= | int i = 2; print(i%=5); 输出:2 |
| ??= | int i; i ??= 20; print(i); //如果变量没有赋值才进行赋值,否则不进行赋值 |
三目运算符
- int i = 1;
- int j = 2;
- print(i < j ? 'A':'B');
- //输出:A
??运算符,如果??前面的表达式为null,则使用??后面的值
- int i=1;
- int j = 2;
- print(i ?? j);
- //输出:1
- int i;
- int j = 2;
- print(i ?? j);
- //输出:2
?. 判空引用操作符
- String str;
- int len = str?.length; //如果没有?,会报错
- print(len); //null
as类型转换
- num a = 1;
- int b = a as int;
- print(b);
is/is! 类型判断
- int b = 1;
- print(b is int);
.. 级联操作符
- final Set _elements = HashSet();
- final List elements = _elements.toList()..sort();