美文网首页
Dart 基础语法day2

Dart 基础语法day2

作者: XieHenry | 来源:发表于2020-08-13 09:53 被阅读0次

1.自定义方法

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

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

String printUserInfo(){
  return 'this is str';
}

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('张三'));//打印结果     姓名:张三---年龄保密

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

 String printUserInfo(String username, [String sex = '男', int age]) {//行参
    if (age != null) {
      return "姓名:$username---性别:$sex--年龄:$age";
    }
    return "姓名:$username---性别:$sex--年龄保密";
  } 

print(printUserInfo('张三'));    //打印结果    姓名:张三---性别:男--年龄保密
print(printUserInfo('小李', '女')); //打印结果  姓名:小李---性别:女--年龄保密

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

String printUserInfo(String username, {int age, String sex = '男'}) {//行参
    if (age != null) {
      return "姓名:$username---性别:$sex--年龄:$age";
    }
    return "姓名:$username---性别:$sex--年龄保密";
  }
print(printUserInfo('张三', age: 20, sex: '未知')); //打印结果  姓名:张三---性别:未知--年龄:20

6.实现一个 把方法当做参数的方法

fn1() {
    print('fn1');
}


fn2(fn) {
    fn();
}

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

7.箭头函数(只能写一句代码)

List list = ['苹果', '香蕉', '西瓜'];
list.forEach((value) {
    print(value);
});

使用箭头函数之后:
1.list.forEach((value)=>print(value));

2.list.forEach((value)=>{
     print(value)
});
/*需求:修改下面List里面的数据,让数组中大于2的值乘以2*/
List list=[4,1,2,3,4];
var  newList=list.map((value){
   if(value>2){
        return value*2;
    }
   return value;
  });
print(newList.toList());

使用箭头函数之后:
var newList=list.map((value)=>value>2?value*2:value);
print(newList.toList());

8.函数的相互调用

bool isEvenNumber(int n){
    if(n%2==0){
    return true;
    }
    return false;
}

printNum(int n){
   for(var i=1;i<=n;i++){
       if(isEvenNumber(i)){
           print(i);
          }
    }
}
printNum(10);

9.匿名方法

var printNum = () {
    print(123);
};
printNum();
var printNum = (int n) {
    print(n + 2);
};
printNum(12);

10.自执行方法(一运行,就会执行,不需要主动调用)

(() {
   print("我是自执行方法");
})();
((int n){
   print(n);
   print('我是自执行方法');
})(12);

11.方法的递归

var sum=1;
fn(n){
    sum*=n;
    if(n==1){
      return ;
    }
    fn(n-1);
}

fn(5);
print(sum);

12.闭包

1、全局变量特点: 全局变量常驻内存、全局变量污染全局
2、局部变量的特点: 不常驻内存会被垃圾机制回收、不会污染全局

想实现的功能:
1.常驻内存
2.不污染全局
产生了闭包,闭包可以解决这个问题.....
闭包: 函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收(不会释放内存)
闭包的写法: 函数嵌套函数,并return 里面的函数,这样就形成了闭包。

fn(){
   var a=123;  /*不会污染全局   常驻内存*/
   return(){            
      a++;          
      print(a);
   };        
}     
var b=fn(); 
b();
b();
b();

相关文章

  • Dart 基础语法day2

    1.自定义方法 2.定义一个方法然后打印用户信息 3.定义一个带可选参数的方法 4.定义一个带默认参数的方法 5....

  • dart入门潜修系列教程

    dart入门潜修基础篇之基本语法和内置类型dart入门潜修基础篇之方法dart入门潜修基础篇之操作符dart入门潜...

  • Flutter笔记--Dart任务调度

    dart异步代码是如何执行的 在Dart基础语法一文中我们了解了dart的一些基础语法,包括异步代码的使用。在da...

  • Flutter学习笔记

    Dart基础语法 一、选择开发工具 首先需要安装Dart SDK(https://www.dart-china.o...

  • Flutter一:Flutter简介、环境配置

    以项目驱动,中间穿插各个组件 第一天:Flutter简介、环境搭建、Dart语法基础一 第二天:Dart语法基础二...

  • Flutter-Dart基础语法入门

    Dart语法基础 Dart语言简介 Dart是Google推出的一门编程语言,最初是希望取代Javascript运...

  • dart语法7-泛型

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • dart语法8-库

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • dart语法10-生成器

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • dart语法9-异步

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

网友评论

      本文标题:Dart 基础语法day2

      本文链接:https://www.haomeiwen.com/subject/ijtrdktx.html