一.Dart 学习
1.安装
- 安装dart 官网
brew tap dart-lang/dart $ brew install dart - VScode 配置dart支持和code runner
2.Dart 基本使用
定义方式
- 定义变量方式 var 或者 基本类型(String, int等);切修改值时数据类型不能改变
- 定义常量方式 const 或 final (const是定义时赋值,final是惰性的 使用时赋值)
基本数据类型
-
String 字符串
-
三个单引号内可以写多行字符串
-
字符串拼接
str1 + str2、'$str1 $str2'
-
-
int(整数类型)、double(浮点数类型、可以整数亦可以小数)
- 运算符 + - * /
-
bool 布尔类型
1.只能是true false
2.条件判断 == 判断是否相等,不会进行类型转换
-
List 数组
-
var arr = ["test", 1, true]length 下标从0开始 -
指定类型:
var test = <String>['张张', 'test'] -
增加数据
test.add('test2') -
var test2 = new List()新版本已废弃此方法 -
var test3 = List.filled(3, "")限制长度(且无法修改),并填充
-
-
Map 对象
var person = {name: '张三', age: 18 };var p = new Map(); p['xxx'] = 'xxx'
-
Set 无序对象 去重
-
类型判断
isstr is String
运算符
- 算数运算符 加减乘除 取整
a~/b取余a%b - 关系运算符
a == b、a != b、> < <= >= - 逻辑运算符
&& ||、??=为空时赋值 - 复合赋值运算符
+= -= *= /= %= ~/= - 条件表达式
switch、 三元表达式、??运算符
类型转换
-
toString()
-
int.parse double.parse
-
bool 转换
str.isEmpty是否为空循环语句
for (int i = 1; i < 10; i++){}while: do{ }while()continue break继续和跳出
3.函数
main
*任何应用都必须有一个顶级 main() 函数,作为应用服务的入口。 main() 函数返回值为空,参数为一个可选的 List<String> 。*
void main(List<String> arguments) {
print(arguments);
assert(arguments.length == 2);
assert(int.parse(arguments[0]) == 1);
assert(arguments[1] == 'test');
}
创建函数方式和js类似
- void 定义函数
void myFn() {} - 箭头函数 () => {}
类:Class
abstract 抽象类:抽象类不能实例化。 抽象类通常用来定义接口,以及部分实现。 如果希望抽象类能够被实例化,那么可以通过定义一个 工厂构造函数 来实现。
implements 实现一个或者多个接口, 并实现每个接口要求的 API
abstract 抽象类
extends 扩展类
泛型
1. 正确指定泛型类型可以提高代码质量。
2. 使用泛型可以减少重复的代码。
3. `T getData<T>(T value) {
return value;
} `
4. 参数的类型 (List<T>)
5. 局部变量的类型 (T tmp)
```
T first<T>(List<T> ts) {
// Do some initial work or error checking, then...
T tmp = ts[0];
// Do some additional checking or processing...
return tmp;
}
```