Dart基础第7篇:函数的定义 可选参数 默认参数 命名参数

文章目录

    • 一丶 方法的定义 变量 方法的作用域
    • 二丶 方法传参 、默认参数、可选参数、命名参数 、方法作为参数

一丶 方法的定义 变量 方法的作用域

内置方法/函数:
print();
自定义方法:
自定义方法的基本格式:
返回类型 方法名称(参数1,参数2,…){
方法体
return 返回值;
}

void printInfo(){
  print('我是一个自定义方法');
}

int getNum(){
  var myNum=123;
  return myNum;
}

String printUserInfo(){

  return 'this is str';
}


List getList(){

  return ['111','2222','333'];
}

void main(){

   print('调用系统内置的方法');

   printInfo();
   var n=getNum();
   print(n);

   print(printUserInfo());

   print(getList());

   print(getList());
  
//演示方法的作用域
  void xxx(){

      aaa(){
          print(getList());
          print('aaa');
      }
      aaa();
  }
  // aaa();  错误写法 
  
  xxx();  //调用方法
}

二丶 方法传参 、默认参数、可选参数、命名参数 、方法作为参数

//调用方法传参

main() {
 
//1、定义一个方法 求1到这个数的所有数的和      60    1+2+3+。。。+60
 
    int sumNum(int n){
      var sum=0;
      for(var i=1;i<=n;i++)
      {
        sum+=i;
      }
      return sum;
    } 

    var n1=sumNum(5);
    print(n1);
    var n2=sumNum(100);
    print(n2);

//2、定义一个方法然后打印用户信息
     String printUserInfo(String username,int age){  //行参
         return "姓名:$username---年龄:$age";
     }

     print(printUserInfo('张三',20)); //实参

//3、定义一个带可选参数的方法
    

     String printUserInfo(String username,[int age]){  //行参

       if(age!=null){
         return "姓名:$username---年龄:$age";
       }
       return "姓名:$username---年龄保密";
    
     }

     print(printUserInfo('张三',21)); //实参

     print(printUserInfo('张三'));

//4、定义一个带默认参数的方法


     String printUserInfo(String username,[String sex='男',int age]){  //行参

       if(age!=null){
         return "姓名:$username---性别:$sex--年龄:$age";
       }
       return "姓名:$username---性别:$sex--年龄保密";

     }

   print(printUserInfo('张三'));

   print(printUserInfo('小李','女'));

   print(printUserInfo('小李','女',30));



//5、定义一个命名参数的方法

   String printUserInfo(String username,{int age,String sex='男'}){  //行参

       if(age!=null){
         return "姓名:$username---性别:$sex--年龄:$age";
       }
       return "姓名:$username---性别:$sex--年龄保密";
   }

   print(printUserInfo('张三',age:20,sex:'未知'));



//6、实现一个 把方法当做参数的方法
   var fn=(){

     print('我是一个匿名方法');
   };      
   fn();

  //方法
  fn1(){
    print('fn1');
  }

  //方法
  fn2(fn){
    
    fn();
  }

  //调用fn2这个方法 把fn1这个方法当做参数传入
  fn2(fn1);

}

你可能感兴趣的:(Dart,学习)