函数
内置方法/函数:
print();
自定义方法:
自定义方法的基本格式:
返回类型 方法名称(参数1,参数2,...){
方法体
return 返回值;
}
示例
void printInfo() {
print('我是一个自定义方法');
}
int getNum() {
var myNum = 123;
return myNum;
}
String printUserInfo() {
return 'this is str';
}
List getList() {
return ['111', '2222', '333'];
}
void main() {
print('调用系统内置的方法’); // 调用系统内置的方法
printInfo(); // 我是一个自定义方法
var n = getNum();
print(n); // 123
print(printUserInfo()); // this is str
print(getList()); // [111, 2222, 333]
// 演示方法的作用域
void xxx() {
aaa() {
print(getList()); // [111, 2222, 333]
print('aaa’); // aaa
}
aaa();
}
// aaa(); // 调用不了,aaa()方法不能在xxx函数外使用 错误写法
xxx(); //调用方法
}
方法传参数
int sumNum(int n) {
var sum = 0;
for (var i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
var n1 = sumNum(5);
print(n1); // 15
var n2 = sumNum(100);
print(n2); // 5050
多个参数
String printUserInfo(String username, int age) {
// 行参
return "姓名:$username---年龄:$age";
}
print(printUserInfo('张三', 20)); // 实参 姓名:张三---年龄:20
可选参数
String printUserInfo(String username, [int age]) {
if (age != null) {
return "姓名:$username---年龄:$age";
}
return "姓名:$username---年龄保密";
}
print(printUserInfo('张三', 21)); // 姓名:张三---年龄:21
print(printUserInfo('张三')); // 姓名:张三—年龄保密
默认值参数
String printUserInfo(String username, [String sex = '男', int age]) {
if (age != null) {
return "姓名:$username---性别:$sex--年龄:$age";
}
return "姓名:$username---性别:$sex--年龄保密";
}
print(printUserInfo('张三')); // 姓名:张三---性别:男--年龄保密
print(printUserInfo('小李', '女')); // 姓名:小李---性别:女--年龄保密
print(printUserInfo('小李', '女', 30)); // 姓名:小李---性别:女--年龄:30
命名参数
String printUserInfo(String username, {int age, String sex = '男'}) {
if (age != null) {
return "姓名:$username---性别:$sex--年龄:$age";
}
return "姓名:$username---性别:$sex--年龄保密";
}
print(printUserInfo('张三', age: 20, sex: '未知')); // 姓名:张三---性别:未知--年龄:20
方法参数
var fn = () {
print('我是一个匿名方法');
};
fn();
// 方法
fn1() {
print('fn1');
}
//方法
fn2(fn) {
fn();
}
fn2(fn1); // 调用fn2这个方法 把fn1这个方法当做参数传入
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
https://serious-lose.notion.site/Dart-7-Day-51a9f1621e0b42e882550c0c7bdc956d