Dart:函数

内置函数

比如前面我们一直使用的print()方法就是Dart的内置方法。

自定义方法

语法

 返回类型 方法名称(参数1,参数2,...{
    
    

   	 	方法体

    	return 返回值;

   }

例如:

main() {
    
    
  printName('hello Dart!');
  print(getName());
}

//无返回值
void printName(String name) {
    
    
  print(name);
}

//返回String类型
String getName() {
    
    
  String name = 'hello Dart';
  return name;
}

在这里插入图片描述

传参

一般用法

void printName(String name) {
    
    
  print(name);
}

可选参数

有些老教程是这样的:
在这里插入图片描述
但是现在已经不支持这样写了,具体原因见 missing_default_value_for_parameter

新写法

//给定默认参数
void printName(String name,[int age=10]) {
    
    }

//可选
void printName(String name, [int? age]) {
    
    }

Dart 中实现一个把方法当做参数的方法

这个不说了,js中有很多将函数当作参数的列子。

箭头函数

略,跟js中的箭头函数一个用法

匿名函数

main() {
    
    
  () {
    
    
    print("这是个匿名函数");
  }();
}

把一个匿名方法赋值给变量

var a = () {
    
    
  print("这是个匿名函数");
};

注:dart中的箭头函数式的匿名函数跟js中有很大区别,只能用来执行函数,并且不能使用分号

错误写法:
在这里插入图片描述
正确写法:
在这里插入图片描述

闭包

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

我们想实现的功能:

1.常驻内存
2.不污染全局

要实现上面功能就产生了闭包,闭包可以解决这个问题。

  • 闭包: 函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收(不会释放内存)
  • 闭包的写法: 函数嵌套函数,并return 里面的函数,这样就形成了闭包。

示例

1、全局变量:常驻内存、全局变量污染全局

在这里插入图片描述
局部变量:不常驻内存会被垃圾机制回收、不会污染全局
在这里插入图片描述
闭包 常驻内存 不污染全局
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41897680/article/details/125324895