-
Notifications
You must be signed in to change notification settings - Fork 0
/
function.dart
78 lines (60 loc) · 1.68 KB
/
function.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
void main() {
void func() {
print("func");
}
// (){
// print("func"); = func
// }
//func直接去掉 然后()即为直接调用方法 匿名函数
() {
print("func");
}();
// =>箭头函数 相当于精简掉了 return value; 且后面跟表达式,并不能跟复杂的语句
int arrowFunc() {
return 1 + 2;
}
int arrowFunction() => 1 + 2;
void arrowFunc2() {
print("arrowFunc2");
}
void arrowFunc22() => print("arrowFunc22");
arrowFunc2();
arrowFunc22();
//可选参数 可选参数必须赋初始值 否则报错
//❌ void paraFunc(int age, [int x]){}
void paraFunc(int age, [int x = 0]) {
print("${age}==${x}");
}
paraFunc(10, 111);
//[参数]表示可选参数 {}表示命名参数 这些参数必须有初始值
//多个可选参数 按顺序传参 参数可传可不传
void paraFuncxxx(int age, [int x = 0, String y = "10"]) {
print("${age}==${x}==${y}");
}
paraFuncxxx(10);
paraFuncxxx(10, 20);
paraFuncxxx(10, 20, "30");
//命名参数 传参可不按顺序但要指定参数名
void printInfo2(String name, {String sex = '男', int age = 10}) {
print(name + sex + age.toString());
}
printInfo2("22", age: 333, sex: "人要");
//函数作为参数传递
void paraFuncPara(String name){
print("paraFuncPara函数处理参数="+name);
}
void runFunc( String para, Function paraFunc){
paraFunc(para);
}
runFunc("我是runFunc参数", paraFuncPara);
//dart语法糖 ?. ??
Dog dog = Dog();
//?. 如果dog为nul dog.name也会返回null
print(dog?.name);
//??
print(dog.name??"前面的值如果为null 则输出这一行");
}
class Dog{
var name;
int age = 0;
}