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 = '''
		abc
		def
		123
		456
	''';
	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 = <String>['张三','李四'];
    	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、类型判断

  • 关键字:is

    main()
    {
    	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}次循环");
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iGma_e

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值