本章主要学习:Dart入口的方法,变量,注释,常量,数据类型
- Flutter 学习(一)环境搭建以及开发工具配置
1. 执行入口
// 无返回值入口方法
void main() {// 打印print('helloWorld');
}main() {// 打印print('helloWorld');
}
2. 变量
2.1 String (字符串)
// 未初始化,默认值nullString str;print(str);// 字符串定义String s1 = 'helloWorld';print(s1);String s2 = '222';// 字符串拼接print(s1 + s2);//String s3 = '''你好,我们一起学习Dart ''';print(s3);
2.2 int (整数)
// 未初始化,默认值nullint n1;print(n1);int n2 = 100;print(n2);
2.3 double (小数)
// 未初始化,默认值nulldouble d1;print(d1);double d2 = 1.0;print(d2);
2.4 bool (布尔)
// 未初始化,默认值nullbool b1;print(b1);bool b2 = false;print(b2);
2.5 List ( 集合 )
// 未初始化,默认值nullList list;print(list);//创建一个int类型的listList list1 = [1, 2, 3];// 输出[1, 2, 3]print(list1);// 使用List的构造函数List list2 = new List();//添加单个元素list2.add(1);//添加多个元素list2.addAll([2, 3, 4, 5]);print(list2);// 获取集合长度print(list2.length);// / 获取第一个元素print(list2.first);// 获取元素最后一个元素print(list2.last);// 利用索引获取元素print(list2[0]);// 查找某个元素的索引号print(list2.indexOf(2));// 删除指定位置的元素,返回删除的元素print(list2.removeAt(0));// 删除指定元素,成功返回true,失败返回false// 如果集合里面有多个2, 只会删除集合中第一个改元素list2.remove(2);// 删除最后一个元素,返回删除的元素list2.removeLast();// 删除指定范围(索引)元素,含头不含尾list2.removeRange(0, 1);// 删除指定条件的元素(这里是数字大于2)list2.removeWhere((item) => item > 2);// 删除所有的元素list2.clear();print(list2);// 限定list的长度添加int参数,表示List固定长度,不能进行添加 删除操作List list3 = new List(1);// nullprint(list3[0]);// [null]print(list3);
2.6 Map (字典)
// 未初始化,默认值nullMap map;print(map);//创建一个mapMap map1 = {'key': '0', 'value': '1'};// {key: 0, value: 1}print(map1);//先声明一个map,再赋值Map map2 = new Map();map2['key'] = '0';map2['value'] = '1';// {key: 0, value: 1}print(map2);// 指定键值对参数类型var map3 = new Map<int, String>();// Map的赋值,中括号中是Key,这里可不是数组map3[1] = '123';//Map中的键值对是唯一的Key如果存在,Value会覆盖之前的数据map3[1] = '321';// map里面的value可以相同map3[2] = '123';// map里面value可以为空字符串map3[3] = '';// map里面的value可以为nullmap3[4] = null;print(map3);// 查看Map是否含有某Keyprint(map3.containsKey(1));//删除某个键值对map3.remove(1);print(map3);
2.7 var|Object|dynamic (动态类型)
// 定义变量,没有明确类型,编译的时候根据值明确类型 var str1 = 'helloWorld';Object str2 = '张三';dynamic str3 = '李四';print(str1);print(str2);print(str3);
3. 常量
// 使用final 或者 const 定义时就必须初始化,并且值只能设置一次final String str = '1';const String str2 = '2';//无法再次赋值 The final variable 'str' can only be set once// str = '3';// str2 = '3';//flnal 或者 const 不能和 var 同时使用// final var str3= '3';// const var str3= '3';
4. 运算符
| 描述 | 操作符 | ||
|---|---|---|---|
| 一元后置操作符 | expr++ expr-- () [] . ?. |
||
| 一元前置操作符 | expr !expr ~expr ++expr --expr |
||
| 乘除 | * / % ~/ |
||
| 加减 | + - | ||
| 位移 | << >> |
||
| 按位与 | & | ||
| 按位或 | |||
| 按位异或 | ^ | ||
| 逻辑与 | && | ||
| 逻辑或 | |||
| 关系和类型判断 | >= > <= < as is is! |
||
| 等 | == != |
||
| 如果为空 | ?? |
||
| 条件表达式 | expr1 ? expr2 : expr3 |
||
| 赋值 | = *= /= ~/= %= += -= <<= >>= &= ^= = ??= |
||
| 级联 | .. |
5. 流程控制
- if...else
- for
- while do-whild
- break continue
- switch...case
- assert(仅在checked模式有效)
int i = 0;// 单独一个条件if (i == 0) {print('i==0');}// 对立条件if (i != 0) {print('i!=0');} else {print('i==0');}// 多条件if (i > 0) {print('i>0');} else if (i < 0) {print('i<0');} else {print('i==0');}// 循环for (int j = 0; j < i; j++) {print(j);}for (int j = 1; j <= 100; j++) {if (j == 100) {// 退出循环break;}if (j % 2 != 0) {// 跳过接下来的操作continue;}print(j);}// 循环while (i == 0) {i += 1;}// 不管while里的条件是否满足,都会先执行一次方法体do {i += 1;print('i==0');} while (i == 0);//switch (i) {case 1:print('我是1');break;case 2:print('我是2');break;default:print('我是默认');}
注意:
break
- 在switch语句中使用流程跳出switch结构。
- 在循环语句中使流程跳出当前循环,遇到break循环终止,后面代码也不会执行。
- 如果在循环中已经执行了breck语句,就不会执行循环体中位于breck后的语句。
- 在多层循环中,一个break语句只能向外跳出一层。
- break可以用在switch case中 也可以用在for 循环中和while循环中
continue
- 只能在循环语句中使用,使本次循环结束,即跳过循环体中下面尚未执行的语句。
- continue可以用在for循环以及while循环中,但是不建议用在while循环中,容易死循环。
6. 关键字
| 关键字 | - | - | - |
|---|---|---|---|
| abstract | do | import | super |
| as | dynamic | in | switch |
| assert | else | interface | sync* |
| enum | implements | is | this |
| async* | export | library | throw |
| await | external | mixin | true |
| break | extends | new | try |
| case | factory | null | typedef |
| catch | false | operator | var |
| class | final | part | void |
| const | finally | rethrow | while |
| continue | for | return | with |
| covariant | get | set | yield* |
| default | if | static | deferred |