持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
今日目标
今天的学习目标是学习Dart中的函数,函数的定义,可选参数,默认参数,具名参数
函数
前几天我们使用到的比如像toList() toString() print()这些都是dart内置好的方法,那么如果想自定义一个方法该怎么做呢?
定义函数
自定义方法的基本格式
返回类型 方法名称 (参数1,参数2,...) {
方法体
return 返回值;
}
void myprint(str){ // 这一行的str叫做形参
print('你太有才了 $str');
};
myprint(123) // 这里传入的123叫做实参
自定义的方法可以写在main里面也可以写在main外面,写在外面的就是个全局方法,一般在自定义方法的时候建议使用驼峰命名规则。方法的返回值类型可以不定义,但是通常建议定义好方法的返回值类型,同样的在Dart内也存在作用域这一概念。这点可以参考js的作用域相关知识
可选参数&默认参数
什么叫做可选参数呢?就是这个参数可传可不传
void hello (String name, [age]) {
if (age == null) {
return print('$name ---- xxx');
}
return print('$name ---- $age');
};
hello('你好');
上面方法我们是通过判断来实现不同的输出,那是否可以不通过判断呢?这个时候默认参数就派上用场了
void hello (String name, [age = 'xxx']) {
return print('$name ---- $age');
};
hello('你好');
Tips: 注意在新版本的Dart中可选参数不可以设置类型,可能会有空安全的问题
具名参数
void hello (String name, {age, sex}) {
return print('$name ---- $age---$sex');
};
hello('你好',sex: 'sss', age: 'xxx');
也就是我们的调用的时候传入的参数需要和大括号里的对应上,避免了对传参顺序的要求
Tips: 具名参数和可选参数不可同时使用,二选一
匿名方法
var noName=(){
print('这是一个匿名方法');
};
匿名方法需要赋值给一个变量
ending
持续学习,加油,如有不对的地方还请指正,谢谢~~