Dart语言

版权声明:本文为博主原创文章,未经博主允许不得转载。 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++);};
//}


猜你喜欢

转载自blog.csdn.net/xiaoleizhanghahaha/article/details/89790328