/**
* 内置方法/ 函数:
* print()
*
* 自定义方法:
* 自定义方法的基本格式
* 返回类型 方法名称 (参数1, 参数2, ...){
* 方法体;
* return 返回值;
* }
*/
var num = 100;
main(List<String> args) {
print("num是全局作用域的 = $num");
say();
var a = add(3, 4);
print(a);
var des = func1("张三", 20, 100);
print(des);
var des1 = func2("李四", 19, 99);
print(des1);
var des2 = func3(name: "王五", age: 21, score: 80);
print(des2);
fn2(fn1);
// 匿名函数
var fn = () {
print("匿名函数!");
};
fn();
}
void say() {
print("这是自定义没有返回值的函数");
}
int add(a, b) {
print("这是自定义有返回值的函数");
return a + b;
}
// 可选参数
// 定义一个可选参数的方法, 可以选参数要放在最后一个参数上,用中括号括起来, 中括号里面的参数可以有多个
String func1(String name, [int age, double score]) {
if (age != null && score != null) {
return "$name, $age, $score";
} else {
return "$name";
}
}
// 默认参数
// 定义一个默认参数, 默认参数是要定一个可选参数的中括号[]里面的
String func2(String name, [double score = 100, int age]) {
if (age != null && score != null) {
return "$name, $age, $score";
} else {
return "$name, $score";
}
}
// 命名参数
// 就是用大括号括起来的一个参数, 类似一个字典传过去, 里面也可以默认参数值
String func3({String name, double score = 100, int age}) {
if (age != null && score != null) {
return "$name, $age, $score";
} else {
return "$name, $score";
}
}
// 函数作为参数
fn1() {
print("fn1");
}
fn2(fnName) {
fnName();
}
网友评论