【笔记】Dart的方法

前言

Dart的方法学习笔记

主方法

  • 程序的入口
1
2
3
void main() {
...
}

定义方法

  • 定义自定义方法
  • 方法名通常采用驼峰命名法

返回值

有返回值的方法

1
2
3
4
返回值类型 方法名(参数列表) {
...
return 返回值;
}

没有返回值的方法

1
2
3
void 方法名(参数列表) {
...
}

任意返回值的方法

  • 返回值为自动推导类型
1
2
3
4
方法名() {
...
返回值;
}

参数列表

没有参数列表的方法

1
2
3
void 方法名() {
...
}

直接指定形参名

  • 直接指定形参名时,可以传递任意类型的形参
1
2
3
void 方法名(形参名, 形参名) {
...
}

指定形参类型

1
2
3
void 方法名(数据类型 形参名, 数据类型 形参名) {
...
}

指定可选参数

  • 如果指定可选参数,在方法调用时可以传参也可以不传参
  • 可选参数用[]包裹,多个可选参数用一对[]包裹,用,分隔
  • 可选参数需要写在参数列表末尾
  • 可选参数在调用时是根据传参顺序决定参数的赋值的
1
2
3
void 方法名(数据类型 形参名, [数据类型 形参名, 数据类型 形参名]) {
...
}
默认参数
  • 提供参数的默认值。如果可选参数不传递参数,则赋值为默认值
  • 可选参数的默认参数通常放在其他可选参数的前面
1
2
3
void 方法名(数据类型 形参名, [数据类型 形参名=默认值, 数据类型 形参名]) {
...
}

指定命名参数

  • 如果指定命名参数,在方法调用时可以传参也可以不传参
  • 命名参数用{}包裹,多个命名参数用一对{}包裹,用,分隔
  • 命名参数需要写在参数列表末尾
  • 命名参数在调用时是根据形参名决定参数的赋值的
1
2
3
4
5
void 方法名(数据类型 形参名, {数据类型 形参名, 数据类型 形参名}) {
...
}

方法名{参数值, 参数名=参数值}
默认参数
  • 提供参数的默认值。如果可选参数不传递参数,则赋值为默认值
  • 命名参数的默认参数可以不放在其他可选参数的前面,因为命名参数的调用是通过参数名决定参数的赋值的
1
2
3
void 方法名(数据类型 形参名, {数据类型 形参名=默认值, 数据类型 形参名}) {
...
}

把方法作为参数传递

1
2
3
4
5
6
void 方法名1(参数名) {
参数名();
}
void 方法名2() {}

方法名1(方法名2);

匿名方法

1
2
3
4
5
var 变量名 = (参数列表) {
...
}

变量名();

箭头方法

  • 箭头方法的方法体只能写一句代码
1
2
3
(参数列表)=>{
...
}
  • 如果箭头方法的方法体省略了{},那么无需写return即可将返回值返回
1
(参数列表)=>方法体

自执行方法

  • 在定义方法后,立即执行方法
1
2
3
((形参列表) {
...
})(实参列表);

递归方法

  • 方法内部自己调用自己的方法
1
2
3
void 方法名() {
方法名();
}

闭包

  • 全局变量:可以常驻内存,但是数据可能会被污染
  • 局部变量:会被垃圾回收,不会常驻内存,数据不会污染
  • 闭包:方法的返回值是一个匿名函数,这个匿名函数定义了一些变量,这些变量既不会被污染,也不会被垃圾回收
1
2
3
4
5
void 方法名() {
return () {
变量名 = 值;
}
}

调用方法

无返回值

1
方法名(参数列表);

有返回值

1
var 返回值 = 方法名(参数列表);

方法的作用域

  • 在方法内部定义的方法为局部方法
  • 局部作用域定义的方法只能在作用域内部调用,不能在全局调用
1
2
3
4
5
6
void 方法名() {
void 方法名() {
...
}
方法名();
}

完成

参考文献

哔哩哔哩——筱筱知晓