版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoleizhanghahaha/article/details/89790328
---故事二
// * 算术运算符 // 加减乘除: +、 -、 *、 / 、 ~/(取整)、 % //递增递减:++ var ,var ++ ,var-- ,--var //关系运算符:== ,!=,>,<,>=,<= // 判断内容是否相同使用 == // 逻辑运算符 : !,&&,|| // 赋值运算符:=,??= 如果是空的,就要赋值,如果有值就用原来的值 // 复合运算符:+=,-=,*=,/=,%=,~/= // 条件表达式: //三目运算符: condition ? expr1:expr2 //?? 运算符:expr1?? expr2 //-------------------------------------------------- // 控制语句 // if 语句 // if ... else if 语句 // if ... else if ...else 语句 // 循环语句 // for 循环 // for ... in 语句 // while // do ... while // break continue // switch ...case num,String,编译期常量,对象,枚举 // 非空case 必须有一个break ,default处理默认情况 continue 跳转标签 相当于goto语句 //-------------------------------------------------- // 方法定义 //返回参数类型 方法名 (参数1,参数2,....){ // 方法体.. // return 返回值 //} //void main(List args){ // print(args); // print(getPerson("张三", 21)); // print(getPerson1("离职", 10)); // getPerson2("王五", 0); // getPerson3("王五", 0); // print(getPerson3("王五", 0)); // print(getPerson4("王五", 0)); // print(getPerson5("王五", 0)); //} // 方法一:使用 Terminal 传入参数 // \Android\dart>cd demo001 //F:\Android\dart\demo001>dart yusuanfu.dart 1 "test" true //[1, test, true] // 方法二: 下面方法一样 String getPerson (String name ,int age ){ return "name+$name, age+ $age"; } getPerson1 (String name ,int age ){ return "name+$name, age+ $age"; } void getPerson2 (String name ,int age ){ print( "name+$name, age+ $age"); } getPerson3 ( name , age ){ print( "name+$name, age+ $age"); } getPerson4( name , age ) => "name+$name, age+ $age"; int gender=1; getPerson5( name , age ) => gender==1 ? "name+$name, age+ $age":"test"; //方法特性: // 方法也是对象,并且具体类型 Function //返回值类型,参数类型都可以省略 //箭头语法: => expr 是 {return expr;} 缩写。只适用于一个表达式 // 方法都有返回值。如果没有指定,默认 return null 最后一句执行。 //--------------------------------------------------- //可选参数 // 可选命名参数: {param1,param2,...} // 可选位置参数: [param1,param2....] // 如果存在具体参数,可选参数声明,必须在参数后面 (编译不通过) //void main(){ //printPerson("张三"); // 可选参数 //printPerson("张三",age:20); // 基于命名的可选参数 //printPerson2("张三"); // 可选参数 //printPerson2("张三",10); // 基于位置的可选参数 //} //printPerson( String name,{int age ,String gender}){ // print("name=$name,age=$age,gender=$gender"); //} //printPerson2( String name,[int age ,String gender]){ // print("name=$name,age=$age,gender=$gender"); //} //--------------------------------------------------- //默认参数值 //使用 = 在可选查收指定默认值 //默认值只能是编译时的常量 //void main(){ //printPerson("张三"); // 可选参数 //printPerson("张三",age:20); // 基于命名的可选参数 //printPerson2("张三"); // 可选参数 //printPerson2("张三",10); // 基于位置的可选参数 //} //printPerson( String name,{int age =88,String gender="meal"}){ // print("name=$name,age=$age,gender=$gender"); //} //printPerson2( String name,[int age =99 ,String gender="jame"]){ // print("name=$name,age=$age,gender=$gender"); //} // //--------------------------------------------------- //方法对象 //方法可作为对象赋值给其它变量 //方法可作为参数传递给其它方法 //void main(){ //var fucn=printPerson(); //printPerson(); //Function function=printPerson(); //var list=[1,2,3,4]; //list.forEach(print); //var list2=["h","e","l","l","o"]; //print(listTimes(list2, times)); //} //printPerson(){ // print("hello"); //} //List listTimes(List list,String time(str)){ // for (var i=0;i<list.length;i++){ // list[i]=time(list[i]); // } // return list; //} // //String times(str){ // return str * 3; //} //--------------------------------------------------- //匿名方法 //{参数1,参数2,...}{ // 方法体... //return 返回值 //} // 可赋值给变量,通过变量进行调用 // 可在其它方法中直接调用或传递给其它方法 void main(){ var func=(str){ print("hello+=====$str"); }; func(444); var list2=["h","e","l","l","o"]; var list3=listTimes(list2); print(list3); var list4= listTimes1(list2,(str){ return str * 3 ;}); print(list4); // ((){ // print("不推荐使用"); // }); } List listTimes(List list){ var func=(str){ return str * 3;}; for (var i=0;i<list.length;i++){ list[i]=func(list[i]); } return list; } List listTimes1(List list,time(str)){ for (var i=0;i<list.length;i++){ list[i]=time(list[i]); } return list; } //--------------------------------------------------- //闭包 // 闭包是一个方法(对象) // 闭包定义在其它方法内部 // 闭包能够访问外部方法内的局部变量,并持有其状态 //void main(){ //var func =a(); //func(); //} //a(){ // int count=0; // printCount(){ // print(count++); // } // return printCount; //} //// //a1(){ // int count1=0; // return () { print(count1++);}; //}