Dart
Dart SDK安装
Dart for Windows 下载安装包
vscode编辑器安装dart 和code runner插件
1.dart 的基本语句
1.入口:
main(){ print('hello dart') } //表示main方法没有返回值 void main(){ print('hello dart') }
2.dart 变量
1.定义变量
可以使用var关键字也可以通过类型声明变量
var str ="this is var"; String str = "this is String"; int str =123; void main() { var str = "你好 dart"; print(str);//打印 }数字类型:int
字符串类型:String
2.dart的命名规则
变量名称必须是数字、字母、下划线和美元符号($)组成
注意:标识符开头不能是数字
标识符不能是保留字和关键字
变量的名字是区分大小的:age和Age是不同的变量。(建议不这样用)
建议变量名使用名词,方法名使用动词
3.dart 常量
final 和 const 修饰符
const 值不变一开始就需要赋值
final开始可以不复制,只能赋值一次;而final不仅有const 的编译时常量的特性,最重要的是他运行时常量,并且final是惰性初始化,及运行时第一次使用前才被调用
永远不改变的量,使用final和const修饰他,而不是var或者其他变量类型。
void main() { final date = new DateTime.now(); print(date); } //此时const会报错,调用方法赋值给一个常量时,使用final。###
4.dart中支持的数据类型
1.常用数据类型
Numbers(数值):int (整型) double(浮点型)
Strings(字符串):String
Booleans(布尔):bool
List(数组):在Dart中,数组是列表对象,也可以称为列表
Maps(字典):Map是一个键值对相关的对象。键和值可以是任何类型的对象。每个键
注意:不会进行类型转换
// 单引号或者双引号可以多行 String str = """ this is dart this id dart """ /* 字符串拼接 */ var str = "hello "; var str1 = "dart"; // print ("$str $str1"); print (str+str1); /* 数值类型 */ int a = 123; double b = 23.45; double c =24; console.log(c);//24.0 /* Booleans(只有两个值,true和false) */ bool flag1 = true; bool flag2 = flase; /* 条件判断语句 */ bool flag = true; if(flag){ print('真的'); }else{ print('假的'); } //==============---------------------- void main() { var a = 123; var b = "123"; if (a == b) { print('a和b相等'); } else { print('a和b不相等'); } } // a和b不相等 /* 1.第一种定义List的方法 */ void main() { var list = ['张三', '李四', '王五']; print(list.length);//3 print(list[1]);//李四 } /* 2.第二种定义List的方法 */ var lo = new List(); lo.add('张三'); lo.add('李四'); lo.add('王五'); print(lo.length); print(lo[1]); /* 1.第一种定义Maps的方式 */ var person = { "name": "张三", "gae": 28, "gender": "男", "job": ["程序员", "外卖员"], }; print(person); print(person["age"]); print(person["name"]); print(person["gender"]); print(person["job"]); /* {name: 张三, gae: 28, gender: 男, job: [程序员, 外卖员]} null 张三 男 [程序员, 外卖员] */ /* 2.第二种定义Maps的方式 */ var p = new Map(); p['name'] = '张三'; p['gae'] = 24; p['gender'] = '男'; p['job'] = ["程序员", "外卖员"]; print(p); print(p["age"]); print(p["name"]); print(p["gender"]); print(p["job"]);
2.数据类型判断
is关键词判断
var str = '1234'; if (str is String) { print('对的'); } //对的
5.dart 运算符
1.算数运算符
int a =13; int b =5; print(a + b); print(a - b); print(a * b); print(a / b); print(a % b);//取余 print(a ~/ b);//取整 /* 18 8 65 2.6 3 2 */
2.关系运算符
int a =3; int b =5; print(a == b); print(a != b); print(a > b); print(a > b); print(a >= b); print(a <= b); /* false true false false false true */
3.逻辑运算符
// ! 取反 bool flag = true; print(!flag); /* &&并且 全为true才为true 否则false */ bool a = true; bool b = false; print(a&&b); /* || 或者 全为false才为false 否则true */ bool c = true; bool d = false; print(c||d); /* false true false false false true */
4.赋值运算符
1.基础赋值运算符
= ??==
b??==23; //表示如果b的值为空的话把23赋值给b
2.复合赋值运算符
+= -= *= /= %= ~/=
var a = 10; a += 10;//a=a+10; print(a); //20
3.条件表达式
/* 三目运算符 */ bool flag = true; String success = flag ? '成功' : '失败'; print(success);//成功 /* if else */ var score = 80; if (score>90) { print('优秀'); }else if(score>70){ print('良好');//良好 }else if(score>=60){ print('及格'); }else{ print('不及格'); } /* switch case */ var sex = "男"; switch (sex) { case "男": print('男'); break; case "女": print('女'); break; default: print('参数错误'); break; } //男 /* ??运算符 */ var a; var b = a ?? 10; print(b);//10 var a=22; var b = a ?? 10; print(b);//22
4.类型转换
//1.Number和String类型之间的转换 /* String==>Number parse() */ String a = '10'; var b = int.parse(a); print(b);//10 String myNum = '12.32'; var newNum = double.parse(num); print(newNum);//12.13 //当出现代码出错时,可抛出另一种结果,且不会报错 String price = ''; try{ var newPrice = double.parse(price); print(newPrice); }catch(err){ print(0);//0 } /* Number==>String toString() */ int a = 41; var str = a.toString(); print(str