![961e15bce4c113be0dffd3c2267fa7c5.png](https://i-blog.csdnimg.cn/blog_migrate/034a76ab40b4548b1608462cdd63f84d.png)
40分钟快速入门Dart基础(中)
最近时间太忙,天天加班加点,但是我们的学习的行为不能落下。
小伙伴们继续跟着我一起来学习40分钟快速入门Dart基础(中)
镇楼目录:
![dddd8c687f4af2496852309469aec2f6.png](https://i-blog.csdnimg.cn/blog_migrate/a9bf794c9e80c56c02fedf665a3a0a8a.jpeg)
在本章我们主要跟大家聊聊方法和类。这两大章看似不多,其实也不少,不过小伙伴们不用担心,只要大家按照我下面的代码敲一遍,保证能掌握大部分知识点!
好废话不多说,直接开干。
一、一等方法对象
Dart 是一个真正的面向对象语言,方法也是对象并且具有一种 类型 Function。 这意味着,方法可以赋值给变量,也可以当做其他方法的参数,同时也可以把方法当做参数调用另外一个方法
import 'dart:core';
void main() {
var list = ["黄药师", "郭靖", "小龙女"];
void printElement(element) {
print(element);
}
list.forEach(printElement);
}
复制代码
在Java中如果需要能够通知调用者或者其他地方方法执行过程的各种情况,可能需要指定一个接口,其实就是我们说的回调函数。比如View的onClickListener。而在Dart中,我们可以直接指定一个回调方法给调用的方法,由调用的方法在合适的时机执行这个回调。
void setListener(Function listener){
listener("Success");
}
//或者
void setListener(void listener(String result)){
listener("Success");
}
//两种方式,第一种调用者根本不确定 回调函数的返回值、参数是些什么
//第二中则需要写这么一大段 太麻烦了。
//第三种:类型定义 将返回值为voide,参数为一个String的方法定义为一个类型。
typedef void Listener(String result);
void setListener(Listener listener){
listener("Success");
}
复制代码
在Dart 中方法可以有两种类型的参数:必需的和可选的。 必需的参数需要在参数列表前面, 后面再定义可选参数。
二、可选命名参数
什么叫可选命名函数,其实说白了就是把方法的参数放到 {} 中就变成了可选命名参数。
import 'dart:core';
void main() {
int add({int i, int j}) {
if (i == null || j == null) {
return 0;
}
return i + j;
}
//全参调用
print("--1--${add(i: 10, j: 20)}"); //输出:30
//不传参数(调用也是正确的)
print("--2--${add()}"); //输出:0
//选择传递参数
print("--3--${add(j: 20)}"); //输出:0
//与位置无关
print("--4--${add(j: 20, i: 10)}"); //输出:30
}
复制代码
三、可选位置参数
什么叫可选命名函数,其实说白了就是把方法的参数放到 [] 中就变成了可选命名参数。
void main() {
int add([int i, int j]) {
if (i == null || j == null) {
return 0;
}
return i + j;
}
//全参调用
print("--1--${add(10, 20)}"); //输出:30
//不传参数(调用也是正确的)
print("--2--${add()}"); //输出:0
//选择传递参数
print("--3--${add(10)}"); //输出:0
}
复制代码
四、默认参数
什么叫做默认参数,其实就是在定义方法的时候,可选参数可以使用 = 来定义可选参数的默