Dart基础知识
一、入口函数
1、main()
- 每个
.dart文件中所有内容都要写在 main() 方法中。 - Dart 语法规定,每一行代码结尾必须加上英文的分号表示结束。
2、创建方法
-
main() 方法的创建方法有两种,分别是有返回值和没有返回值
-
有返回值
main() {print('Hello Dart'); } -
没有返回值
void main() {print('Hello Dart'); }
3、注释
- Dart 中的注释与 JavaScript 中相同
- 快捷键:ctrl + /
二、定义变量
1、关键字
- Dart 是一个强大的脚本类语言,可以不预先定义变量类型,自动会进行类型判断(类似于 JavaScript)
- 声明变量关键字:var
- 声明含类型变量:int(数字类型) String(字符类型)
2、var 定义变量
-
代码
main() {var num1 = 123456;var str1 = 'Hello Dart';print('数字:$num1');print('字符:$str1'); } -
运行结果

3、定义含类型变量
-
代码
main() {String str = 'Hello Dart';int num1 = 123456;print("数字:$num1");print("字符:$str"); } -
运行结果

4、定义特殊字符串变量
main()
{var str = '''abcdef123456''';print(str);
}

5、变量命名规则
-
以数字、字母、下划线、$组成
-
不能以数字开头
-
不能使用关键字
-
区分大小写(age和Age不是同一变量)

-
见名思意
三、定义常量
1、const
- const 声明的常量在声明时必须赋值。
2、final
- final 声明的常量在声明时可以不赋值,后期代码中可以赋值,但只能赋值一次。
- final 声明的常量在赋值时可以赋值某个变量的值。
main()
{// const time = new DateTime.now(); // 报错final time = new DateTime.now();print(time);
}
四、数据类型
1、字符串类型
-
可通过 var 或 String 定义字符串类型变量
main() {var str1 = 'Hello';String str2 = 'Dart';print(str1);print(str2); }
-
可通过
+或$拼接字符串main() {var str1 = 'Hello';String str2 = 'Dart';print("$str1 $str2");print(str1 + " " + str2); }
2、数值类型
-
可通过 var int double 关键字定义数字类型的变量
-
使用 int 声明的变量是整形数据。
-
使用 double 声明的变量是浮点型数据。
main() {int a = 10;double b = 12.5;print("$a $b"); }
3、布尔型
-
使用 var bool 定义布尔型数据。
-
布尔值包括: true、false
-
条件判断时,区分数据类型。
main() {var a = 123;var b = '123';if(a == b){print("a = b");}else{print("a != b");} }
4、数组类型(集合类型)
-
可使用 var List 声明数组变量。
-
在声明时,可指定数组类型。
main() {// 普通定义List arr = ['张三',20,true];print(arr);print(arr.length);print(arr[0]);print('--------------------');// 指定类型var arrStr =['张三','李四'];print(arrStr); } 
-
给数组添加数据,add()方法相当于 JavaScript 中的 push() 方法
main() {var arr = [];print(arr);print(arr.length);print('-------');arr.add(1);arr.add(2);arr.add(3);print(arr); }
-
创建指定长度的数组。固定长度的数组只可以修改元素,不可以新增元素
main() {var arr = List.filled(10, true);print(arr);arr[3] = false;print(arr); }
5、Maps 类型
-
第一种定义方式
main() {var obj = {'name': '张三','age': 20,'gender': 0};print(obj);print(obj['name']); }
-
第二种定义方式
main() {var obj = new Map();obj['name'] = '张三';obj['age'] = 20;obj['gender'] = 0;print(obj); }
6、类型判断
-
关键字:
ismain() {var num = 10;var str = '张三';var arr = ['李四',20,'程序员'];var obj = {'name': '王五','age': 20,'gender': 1};print(num is int);print(str is String);print(arr is List);print(obj is Map); }
五、运算符
1、算数运算符
- 运算符
| 运算符 | 注释 |
|---|---|
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除 |
| % | 取余 |
| ~/ | 取证 |
-
代码
main() {var num1 = 21;var num2 = 12;print(num1 + num2);print(num1 - num2);print(num1 * num2);print(num1 / num2);print(num1 % num2);print(num1 ~/ num2); }
2、关系运算符
-
运算符
运算符 注释 == 等于 ! = 不等于 > 大于 < 小于 > = 大于等于 < = 小于等于 -
代码
main() {var num1 = 21;var num2 = 12;print(num1 == num2);print(num1 != num2);print(num1 > num2);print(num1 < num2);print(num1 >= num2);print(num1 <= num2); }
3、逻辑运算符
-
运算符
运算符 注释 ! 非 && 与 || 或 -
与 JavaScript 语法一样
4、赋值运算符
-
运算符
运算符 注释 = 普通赋值 ??= 条件赋值
5、复合赋值运算符
-
运算符
运算符 注释 += 加等于 -= 减等于 *= 乘等于 /= 除等于 %= 取余等于 ~/= 取整等于 -
与 JavaScript 语法一样
6、其他
-
运算符
运算符 注释 ++ 自增 – 自减 -
与 JavaScript 语法一样
main() {var a = 10,b = 10,c = 10,d = 10;print(++a);print(--b);print(c++);print(d--);print("c = $c,d = $d"); }
六、条件表达式
1、if else
- 与 JavaScript 语法一样
2、switch() case
- 与 JavaScript 语法一样
3、三目运算符
-
与 JavaScript 语法一样
main() {var a = 10;var b = 20;var c = a < 20 ? b > 10 ? 'true' : 'false' : 'false';print(c); }
4、??
七、类型转换
1、字符转数值
-
方法:pase()
-
代码:
main() {var str0 = '123';var num0 = int.parse(str0);print(num0 is int);var str1 = '123.1';var num1 = double.parse(str1);print(num1 is double); }
2、数值转字符
-
方法:toString()
-
代码
main() {var num0 = 123.1;var str = num0.toString();print(num0 is double);print(str is String); }
3、转布尔型
-
判断字符串是否为空
main() {var str0 = '';var str1 = 'abc';str0.isEmpty ? print('str0: 空字符串') : print('str0: 非空字符串');str1.isEmpty ? print('str1: 空字符串') : print('str1: 非空字符串'); }
八、循环语句
1、for 循环
-
同 JavaScript
-
与 JavaScript 不同的是,在 dart 中不支持 for in 和 for of
-
例:利用 for 嵌套遍历二维数组
main() {List subject = [{'title': '语文','list': [ '唐诗','宋词','文言文' ]},{'title': '数学','list': [ '算数','几何','函数' ]}];for(var i = 0; i < subject.length; i++){var title = subject[i]['title'];var list = subject[i]['list'];print(title);for(var j = 0; j < list.length; j++){print("--${list[j]}");}} }
2、while 循环
- 同 JavaScript
- 先判断条件,在执行循环体。
3、do while 循环
- 同 JavaScript
- 先执行循环体,在判断条件。(循环体至少执行一次—)
4、break 和 continue
- 同 JavaScript
- break: 跳出最近一层循环
- continue:跳出本次循环
main()
{for(var i = 0; i < 10; i++){if(i == 2) continue;print(i);}for(var j = 0; j < 3; j++){print("外层第${j+1}次循环");for(var k = 0; k < 5; k++){if(j == 1 && k == 3) break;print("---内层第${k+1}次循环");}}
}

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
