Dart(函数)_03

 

 

 

 

void main(){
  int sum(int a,int b){
    var e = a +b;
    return e;
  }

  var result = sum(2, 3);
  print(result);  // 5
  /*
  bool isEven(int x){
    return x%2 ==0?true:false;
  }
   */
  bool isEven(int x) => x%2 == 0?true:false;
  print(isEven(6)); // true

  // 可选命名参数
  void message(String from,String content,{DateTime time,String device}){
    print('来自$from,内容:$content');
    if(time != null){
      print('时间:$time');
    }
    if(device != null){
      print('设备:$device');
    }
  }
  // 可选位置参数使用[]包裹可选参数列表
  // 在调用带有可选位置参数的函数时,应当按照参数的定义顺序
  // 依次赋值,可选位置参数列表中,前一个参数被赋值后,后一个参数才能被赋值

  message('json', 'hello'); //来自json,内容:hello
  message('json', 'hello',time:DateTime.now()); //时间:2022-01-06 20:16:00.552990
  message('json', 'hello',time:DateTime.now(),device: 'pc'); //时间:2022-01-06 20:16:00.555985 设备:pc
  

  



}
/* 每一个Dart应用都必须有一个main函数作为入口
main函数的返回为void,它时一个类型list<String>的
可选参数,即可以向其传递数量的参数,即可以向其传递任意数量参数
*/

void main(){
  void printElement(Object element){
    print(element);
  }

  var list = [1,"abc",true];

  /*
  List 集合有一个forEach方法,它的作用是遍历集合中
  的每一个对象,该方法的参数是一个函数,
  它会将当前遍历对象传递给函数
   */
  list.forEach(printElement);
  var show = printElement;
  show('ele');
}

 

void main(){
  var list = ['apple','banans','orange'];
  list.forEach((Object element){
    print(element);
  });

  Function perimeter(){
    var pi = 3.14;
    return (num r) => 2*pi*r;
  }

  var per = perimeter();
  var l = per(9);
  print('圆的周长:$l'); //圆的周长:56.52
}
/*
 语法作用域在变量或对象定义时,就被确定了,
 它的规则以{}为界限,在{}内访问它之外的对象
 在它内部定义的对象不嫩被它的外部访问
*/ 

String topLevel = 'top variable';
void main(){
  var top = topLevel;
  var insideMain = 'insideMain variable';
  void myFunction(){
    var top = topLevel;
    var main = insideMain;
    void instedFunction(){
      var insideFun='insdeFun';

    }
  }

  /**
   * 闭包是一个函数对象,即使函数对象的调用在它原始作用域
   * 之外,依然能够在它语法作用域内的变量
   * 
   */
  //返回一个函数
  Function makeAdder(num addBy){
    return (num i) => addBy +i;
  }
  var add2 = makeAdder(2);
  var result = add2(6);
  print(result); // 8


  /***
   * 作为参数传递的函数就是回调函数,
   * 回调函数还可以接收原函数提供的值
   */
  void printProgress(Function(int) callback){
    for(int progress=0; progress <10;progress++ ){
      callback(progress);
    }
  }

  printProgress((int i){
    print('进度$i');
  });



}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值