目录
Windows系统Dart环境搭建
Main方法
基本数据类型string和int定义方式
定义const常量和final常量
Dart 类型(数值、字符串、布尔、List集合、Maps)
Dart 类型:数值
Dart 类型:字符串
Dart 类型:布尔
Dart 类型:List集合
Dart 类型:Maps
Dart 类型判断
Dart 运算符、表达式、类型转换
Dart运算符:关系运算符
Dart运算符:算术运算符
Dart运算符:赋值运算符
Dart运算符:逻辑运算符
Dart表达式:条件表达式
Dart类型转换
Dart中的++和--
Dart中for循环以及循环遍历List
Dart中while
Dart中break和continue
Dart中的List、Set、Map、forEach map where any every
Dart中的List常见属性和常见方法
Dart中Set的作用及用法
Dart中Map的常用属性和常用方法
Dart中forEach map where any every使用方法
Dart SDK下载地址: Dart for Windows
上稳定版本
下正式版本
下载下来一直点下一步即可安装成功。
如何看自己有没有安装成功? Win+R打开cmd窗口,输入dart --version 指令 如果返回Dart SDK版本号就意味着已经成功安装。没出现版本号的换稳定版本重新安装即可。
VsCode开发需要装Dart插件,dart项目文件后缀名以.dart结尾
运行项目:右击编辑代码区域-Run Code 或者快捷键:Crtl + Alt + N
main() {print('hello world');
}/* 表示main方法没有返回值 */
void main() {print('hello world');
}
void main(){var str1 = 'hello world'; //字符串定义方式String str2 = '你好dart'; //字符串定义方式var num1 = 1314; //int类型定义方式int num2 = 1234; //int类型定义方式print(str1);print(str2);print(num1);print(num2);/* dart里面有类型校验 */var str3 = '';str3 = 1314; //错误 因为不是string类型print(str3);//定义的变量以英文开头且不能为if for类似的变量// var 2str = 'xxx'; //错误// var if = '13141314'; //错误/* 替换内容 */var str = 'this is a str';str = '你好 str'; //替换掉定义的内容print(str);int num = 1314;num = 6666; //替换掉定义的内容print(num);
}
void main() {// const常量const PI1 = 3.1415926;PI1 = 123.1234; //错误的写法 常量不可以修改print(PI1);// final 常量final PI2 = 3.1415926;PI2 = 123456.123456; //错误的写法 常量不可以修改print(PI2);final a = w(); //获取当前日期print(a);
}
Dart 常见类型有:数值、字符串、布尔、List集合、Maps
void main(){// int 必须是整形int a = 123;a = 45;// double 既可以是整形 也可以是浮点型double b = 23.5;b = 22;// 运算符// + - * / %var c = a + b;print(c); //67
}
void main() {// 字符串定义的几种方式var str1 = 'this is str1';var str2 = 'this is str2';print(str1);print(str2);String str1 = 'this is str1';String str2 = 'this is str2';print(str1);print(str2);//多行写法String str1 = '''this is str1this is str2this is str3''';print(str1);String str1 = """this is str1this is str2this is str3""";print(str1);String str1 = '你好';String str2 = 'dart';print("$str1 $str2");print(str1 + " " + str2);
}
void main() {// bool 值 true/falsebool flag1 = true;print(flag1);bool flag2 = false;print(flag2);// 条件判断语句var flag = true;if (flag) {print('真');} else {print('假');}/* dart不会做数据转换 */var a = 123;var b = '123';if (a == b) {print('a=b');} else {print('a!=b');}var a = 123;var b = 123;if (a == b) {print('a=b');} else {print('a!=b');}
}
void main() {// 第一种定义List的方式var li = ['张三', 20, true];print(li); //['张三', 20, true]print(li.length); //3print(li[0]); //张三print(li[1]); //20// 第二种定义List的方式 指定类型var li2 = <String>["张三", "李四"];print(li2);var li2 = <int>[18, 19];print(li2);// 第三种定义List的方式 增加数据,通过[]创建的集合它的容量是可以变化var li3 = [];print(li3);print(li3.length);li3.add("张三");li3.add("李四");li3.add(20);print(li3);print(li3.length);var li4 = ["张三", 20, true];li4.add("李四");li4.add(66);print(li4);// 第四种定义List的方式var li5 = new List(); //在新版本的dart里面没法使用这个方法了var li5 = List.filled(2, ''); //创建一个固定长度的集合print(li5);print(li5[0]);li5[0] = '张三'; //修改集合的内容li5[1] = '李四';print(li5); //[张三,李四]li5.add("王五"); //错误写法// 通过List.filled创建的集合长度是固定的var li5 = List.filled(2, '');print(li5.length);li5.length=0; //修改集合的长度 报错var li6 = <String>['张三', '李四'];print(li6);li6.length = 0; //可以改变的print(li6);var li7 = List<String>.filled(2, '张三');li7[1] = 'String';print(li7);
}
void main() {//第一种定义Maps的方式var person = {"name": "张三","age": 20,"work": ['程序员', '外卖员', '按摩技师']};print(person);print(person['name']);print(person['age']);print(person['work']);//第二种定义Maps的方式var p = new Map();p['name'] = "李四";p['age'] = 20;p['work'] = ['程序员', '外卖员'];print(p);print(p['age']);
}
void main() {var str = 123;if (str is String) {print('它是String类型');} else if (str is int) {print('它是int类型');} else {print('它是其它类型');}
}
Dart运算符:关系运算符、算数运算符、赋值运算符、逻辑运算符
Dart表达式:条件表达式
Dart类型转换
void main() {// == != > < >= <=int a = 5;int b = 4;print(a == b); //判断是否相等print(a != b); //判断是否不等print(a > b); //判断是否大于print(a < b); //判断是否小于print(a >= b); //判断是否大于等于print(a <= b); //判断是否小于等于if (a > 5) {print('a大于b');} else {print('a小于b');}
}
void main() {int a = 13;int b = 14;print(a + b); //加print(a - b); //减print(a * b); //乘print(a / b); //除print(a % b); //取余print(a ~/ b); //取整var c = a * b;print(c);
}
void main() {// 基础赋值 = ??=int a = 10;int b = 20;int c = a + b; //从右往左b??=23; //表示如果b为空的话就把23赋值给bint b = 6;b ??= 23;print(b);int? b;b ??= 23;print(b);// 复合赋值运算符 += -= *= /= %= ~/=var a = 12;a = a + 10;print(a);var a = 13;a += 10; //表示 a = a + 10print(a);var a = 3;a *= 4; //表示 a = a * 4print(a);
}
void main() {bool flag = true;print(!flag); //取反// &&并且:全部为true的话值未true 否则值未falsebool a = true;bool b = true;print(a && b);// ||或者:全为false的话值为false 否则值为truebool a = false;bool b = true;print(a || b);//如果一个人的年龄是20 并且 sex女的话我们打印这个人int age = 20;String sex = '女';if (age == 20 && sex == '女') {print('这个$sex人$age岁');} else {print('不打印');}//如果一个人的年龄是20 或者 sex女的话我们打印这个人int age = 23;String sex = '女';if (age == 20 || sex == '女') {print('这个$sex人$age岁');} else {print('不打印');}
}
void main() {bool flag = true;if (flag) {print('true');} else {print('false');}// 判断一个人的成绩 如果大于60 显示及格 如果大于70 显示良好 如果大于90 显示优秀var score = 41;if (score > 90) {print('优秀');} else if (score > 70) {print('良好');} else if (score >= 60) {print('及格');} else {print('不及格');}// switch casevar sex = '男';switch (sex) {case "男":print('性别是男');break;case "女":print('性别是女');break;default:print('传入参数错误');break;}// 三目运算符var flag = true;var c;if (flag) {c = '我是true';} else {c = '我是false';}print(c);bool flag = true;String c = flag ? '我是true' : '我是false';print(c);// ??运算符var a;var b = a ?? 10;print(b);var a = 22;var b = a ?? 10;print(b);
}
void main() {// String转换intString str = '123';var num = int.parse(str);print(num is int);// String转换doubleString str = '123.1';var num = double.parse(str);print(num is double);String price = '';var num = double.parse(price);print(num);print(num is double);String price = '10';try {var num = double.parse(price);print(num);} catch (err) {print(0);}var num = 12;var str = String();print(str is String);// 其他类型转换成Bololeans类型// isEmpty:判断字符串是否为空var str = '';if (str.isEmpty) {print('str空');} else {print('str不为空');}var num = 123;if (num == 0) {print('0');} else {print('非0');}var num;if (num == null) {print('空');} else {print('非空');}var num = 0 / 0;if (num.isNaN) {print('NaN');}
}
void main() {/* ++ -- 表示自增 自减 1 在复制运算里面 如果++ -- 写在前面 这时候先运算再赋值如果 ++ -- 写在后面 这时候先赋值 后运算*/var a = 10;a++; // a = a + 1;print(a);var a = 10;a--; // a = a - 1;print(a);var a = 10;var b = a++;print(a); //11print(b); //10var a = 10;var b = ++a;print(a); //11print(b); //11var a = 10;var b = --a;print(a); //9print(b); //9var a = 10;var b = a--;print(a); //9print(b); //10
}
// 第一步,声明变量 int i = 1;
// 第二步,判断i <= 100
// 第三步,print(i)
// 第四步,i++
// 第五步,从第二步再来,直到判断为falsevoid main() {// for 基本语法for (int i = 1; i <= 10; i++) {print(i);}// 1 打印0-50所有的偶数for (int i = 0; i <= 50; i++) {if (i % 2 == 0) {print(i);}}// 2 求1+2+3+4+...100的和var sum = 0;for (var i = 0; i <= 100; i++) {sum += i;}print(sum);/* sum = 0 + 1sum = 0 + 1 + 2;sum = 0 + 1 + 2 + 3 + ... + 100;*/// 3 计算5的阶乘 (1*2*3*4*5 n的阶乘*n)var sum = 1;for (var i = 1; i <= 5; i++) {sum *= i;}print(sum);/* sum = 1 * 1sum = 1 * 2;sum = 1 * 2 * 3;sum = 1 * 2 * 3 * 4;sum = 1 * 2 * 3 * 4 * 5;*/// 4 打印List['张三','李四','王五']里面的内容List list = ['张三', '李四', '王五'];for (var i = 0; i <= list.length; i++) {print(list[i]);}// 5 打印ListList list = [{"title": "新闻111"},{"title": "新闻222"},{"title": "新闻333"}];for (var i = 0; i <= list.length; i++) {print(list[i]['title']);}// 6 定义一个二维数组 打印里面的内容List list = [{"cate": "国内","news": [{"title": "国内新闻1"},{"title": "国内新闻2"},{"title": "国内新闻3"},]},{"cate": "国外","news": [{"title": "国外新闻1"},{"title": "国外新闻2"},{"title": "国外新闻3"},]},];for (var i = 0; i < list.length; i++) {print(list[i]['cate']);print('--------');for (var j = 0; j < list[i]['news'].length; j++) {print(list[i]["news"][j]["title"]);}}
}
/*语法格式:while(表达式/循环条件){ } do{语句/循环体}while(表达式/循环条件);注意: 1、最后的分号不要忘记2、循环条件中使用的变量需要经过初始化3、循环体中,应有结束循环的条件,否则会造成死循环。
*/void main() {// 错误写法 死循环int i = 1;while (i <= 10) {print(i);}// 正确写法int i = 1;while (i <= 10) {print(i);i++;}// 1 求1-100的和int i = 1;var sum = 0;while (i <= 100) {sum += i;i++;}print(sum);int i = 1;var sum = 0;do {sum += i;i++;} while (i <= 100);print(sum);
}
/*break语句功能:1、在switch语句中使流程跳出switch结构。2、在循环语句中使流程跳出当前循环,遇到break 循环终止,后面代码也不会执行强调:1、如果在循环中已经执行了break语句,就不会执行循环体中位于break后的语句。2、在多层循环中,一个break语句只能向外跳出一层break可以用在switch case中 也可以用在 for 循环和 while循环中continue语句的功能:【注】只能在循环语句中使用,使本次循环结束,即跳过循环体重下面尚未执行的语句,接着进行下次的是否执行循环的判断。continue可以用在for循环以及 while循环中,但是不建议用在while循环中,不小心容易死循环*/main() {for(var i=1;i<=10;i++){print(i);}//1、如果i等于4的话跳过for(var i=1;i<=10;i++){if(i==4){continue; /*跳过当前循环体 然后循环还会继续执行*/}print(i);}//2、如果 i等于4的话跳出循环for(var i=1;i<=10;i++){if(i==4){break; /*跳出循环体*/}print(i);}//3、break语句只能向外跳出一层for(var i=0;i<5;i++){ print('外层---$i');for(var j=0;j<3;j++){ if(j==1){break;}print('里层$j'); } }//4、while循环 break跳出循环var i=1;while(i<=10){if(i==4){break;}print(i);i++;}var sex="男";switch (sex) {case "男":print('男');break;case "女":print('男');break;default:}}
介绍Dart中List、Set、Map以及forEach where any every的常用属性和方法
/*
List里面常用的属性和方法:常用属性:length 长度reversed 翻转isEmpty 是否为空isNotEmpty 是否不为空常用方法: add 增加addAll 拼接数组indexOf 查找 传入具体值remove 删除 传入具体值removeAt 删除 传入索引值fillRange 修改 传入索引值和修改内容 insert(index,value); 指定位置插入 insertAll(index,list) 指定位置插入ListtoList() 其他类型转换成List join() List转换成字符串split() 字符串转化成ListforEach mapwhereanyevery*/void main(){List myList=['香蕉','苹果','西瓜'];print(myList[1]);var list=new List(); //新版本没法使用list.add('111');list.add('222');print(list);//List里面的属性:List myList=['香蕉','苹果','西瓜'];print(myList.length);print(myList.isEmpty);print(myList.isNotEmpty);versed); //对列表倒序排序var newMyListList();print(newMyList);//List里面的方法:List myList=['香蕉','苹果','西瓜'];myList.add('桃子'); //增加数据 增加一个myList.addAll(['桃子','葡萄']); //拼接数组print(myList);print(myList.indexOf('苹x果')); //indexOf查找数据 查找不到返回-1 查找到返回索引值ve('西瓜');veAt(1);print(myList);List myList=['香蕉','苹果','西瓜'];myList.fillRange(1, 2,'aaa'); //把“苹果”修改为”aaa“myList.fillRange(1, 3,'aaa'); //把”苹果“和”西瓜“都修改为”aaa“myList.insert(1,'aaa'); //插入 一个myList.insertAll(1, ['aaa','bbb']); //插入 多个print(myList);List myList=['香蕉','苹果','西瓜'];var str=myList.join('-'); //list转换成字符串print(str);print(str is String); //truevar str='香蕉-苹果-西瓜';var list=str.split('-');print(list);print(list is List);}
//Set //用它最主要的功能就是去除数组重复内容//Set是没有顺序且不能重复的集合,所以不能通过索引去获取值//Set出来的数据是() 使用toList转换成[]void main(){var s=new Set();s.add('香蕉');s.add('苹果');s.add('苹果');print(s); //{香蕉, 苹果}List()); List myList=['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];var s=new Set();s.addAll(myList);print(s);List());}
/*映射(Maps)是无序的键值对:常用属性:keys 获取所有的key值values 获取所有的value值isEmpty 是否为空isNotEmpty 是否不为空常用方法:remove(key) 删除指定key的数据addAll({...}) 合并映射 给映射内增加属性containsValue 查看映射内的值 返回true/falseforEach mapwhereanyevery*/void main(){Map person={"name":"张三","age":20};var m=new Map();m["name"]="李四"; print(person);print(m);//常用属性:Map person={"name":"张三","age":20,"sex":"男"};print(List());print(List());print(person.isEmpty);print(person.isNotEmpty);//常用方法:Map person={"name":"张三","age":20,"sex":"男"};person.addAll({"work":['敲代码','送外卖'],"height":160});print(person);ve("sex");print(person);ainsValue('张三'));
}
/*forEach map where anyevery
*/
void main(){List myList=['香蕉','苹果','西瓜'];for(var i=0;i<myList.length;i++){print(myList[i]);}for(var item in myList){print(item);}myList.forEach((value){print("$value");});List myList=[1,3,4];List newList=new List();for(var i=0;i<myList.length;i++){newList.add(myList[i]*2);}print(newList);List myList=[1,3,4]; var newList=myList.map((value){return value*2;});List());List myList=[1,3,4,5,7,8,9];var newList=myList.where((value){return value>5;});List());List myList=[1,3,4,5,7,8,9];var f=myList.any((value){ //只要集合里面有满足条件的就返回truereturn value>5;});print(f);List myList=[1,3,4,5,7,8,9];var f=myList.every((value){ //每一个都满足条件返回true 否则返回falsereturn value>5;});print(f);// setvar s=new Set();s.addAll([1,222,333]);s.forEach((value)=>print(value));//mapMap person={"name":"张三","age":20};person.forEach((key,value){ print("$key---$value");});
}
本文发布于:2024-01-28 22:12:09,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170645113210645.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |