Dart几个概念和常用开发库
Dart:结构化的Web编程语言
- AOT(Ahead Of Time)或者JIT(Just In Time)编译→快
- 在没有lock的情况下,进行Object Simplified和Garbage Collection.
变量与基本数据类型
- 变量与常量
- 变量声明:var
var name = 'Sun'
- 还有机会变化的常量声明:final
final sex = 'female';
- 一旦定下来就没机会变化的常量声明:const
const pi = 3.1415926;
const area = pi*100*100;
List stars = const[1,2,3 ];
//final 与 const
//对于Number、String、Boolean是一样的,都是赋值之后不可变更,对于List、Map是不一样的
final List peoples =['Joy','Jelly','Jimmy'];
peoples[0]='Jerry';//peoples就变成了['Jerry','Jelly','Jimmy']
const List peoples =['Joy','Jelly','Jimmy'];//是不允许修改的
- 基本数据类型
- Number:int(-253 ~ 253) double
- String
- Boolean:在if判断的时候,只能在()里写值为true or false 的判断。java是非0即使true。
- List:list内部的数据类型必须一致,python则是可以数据不同的。
- Map:
var fruits ={'pear':'梨头','apple':'苹果',}
函数
-
可选参数 [],表示[]内的参数,可以不输入
-
使用=来设置默认值
String getUserInfo(String id, [String name='unknown']) { var info ='You id is $id'; if(null!=name){ info='$info'+'You name is $name'; } print(info); }
运算符
- 算数运算符
- 关系运算符
- 类型测试操作符:as、 is
- 赋值操作符
- 逻辑运算符
- 位运算符(不常用)
- 条件表达式
condition ? expr1 : expr2//if(condition){return expr1}else{return expr2} expr1??expr2//if(expr1!=null){return expr1}else{expr2}
- 联级操作符
流程控制语句
跟使用java的这些没有任何区别
- if else
- for
- while do-while
- break continue
- switch case
- assert
- try-catch throw
异常处理
try {
//todo something
} on Exception catch (e) {
print('$e');
} catch (e, s) {
print('$e' + '$s');
} finally {
//todo something
}
面向对象
- 实例化成员变量
- 构造函数
- 读取和写入对象
- 重载操作
- 继承类
- 抽象类
- 枚举类
- Mixins