函数的基本用法
- 一个基本的函数包含传参,实现以及返回值,其中返回值可以不要也不写,但是即使函数不传入任何参数,不实现任何作用,格式依然要写,以下是一个简单的函数
main(List<String> args) {
int a = sum(1, 10);
print(a);
final b = sum1(2, 3);
sum2;
}
int sum(int num1,int num2){
return num1+num2;
}
sum1(int num1,int num2){
return num1+num2;
}
sum2(){
}
Dart函数的参数分为必选参数和可选参数,可选参数可以有默认值,必选参数没有默认值,因为必选参数要求调用时候必须传入值,所以就没必要有默认值
必选参数
- Dart函数必选参数是调用时候必须传入的参数,假如调用时候不传,就会报错

可选参数
Dart函数的可选参数顾名思义就是可以选择参数,可以传也可以不传,同时可选参数的写法又分为
位置可选参数
- 位置可选参数顾名思义就是以固定位置的方式来匹配可选参数。
- 位置可选参数以[id obj]的方式命名,当传参时候按照对应的顺序传入对应声明类型的值即可,如果不需要传,则不用传,位置传入通过[]方式修饰,多个位置可选参数使用逗号隔开
例:
void sayHellow2(String name, [int age , double height ]){
print("name $name age $age height $height");
}
sayHellow2("lilei",18,18.8);
sayHellow2("lilei2");
sayHellow2("lilei",18)
例:
void sayHellow2(String name, [int age = 1, double height = 2.0]){
print("name $name age $age height $height");
}
| 位置参数要求了在调用时候必须按照位置调用,假如我们age不需要传但是height需要传入的话,也不能跳过age,可以通过sayHellow2("lilei",null,18.8)方式来跳过age,但是假如我们age有默认值情况下,又会将age赋值为null,那么有没有一种我即不传值,但是依然可以有默认值的方式呢,为了解决这个需求,Dart为我们提供了另外一种可选参数方式:命名可选参数 |
命名可选参数
- 命名参数是以键值对的方式来匹配可选参数
- 命名参数以{key,key2}的方式来命名,中间以逗号隔开,当传入时候以键值对(key:value)的方式来匹配对应声明类型的可选参数
void sayHellow3(String name, {int age, double height}){
}
sayHellow3("lilei", height:18.8 ,age: 18);
| 因为命名参数的灵活性我们可以跳过不想传入的可选参数,所以在日常项目中命名参数是我们使用的最多的可选参数 |