ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 函数 函数也是对象 ``` add(n) { return n+1; } int add2( int n) { return n+1; } add3(int n)=>n+1; //默认以 return 返回 main() { print(add(2)); // 3 print(add2(2));// 3 print(add3(2));// 3 } ``` ### 可选参数 命名参数或者位置参数,但一个参数只能选择其中一种方式修饰 #### 命名可选参数 ``` echo({int age,String name}){ print(age); print(name); } main() { echo(name:"cc" );// 22 null } ``` #### 位置可选参数 ``` echo(String name,[int age]){ print(name); print(age); } main() { echo("cc");//cc null } ``` ### 默认参数值 命名可选参数 ``` echo({int age=22,String name="cc"}){ print(age); print(name); } main() { echo(name: "dd");// 22 dd } ``` 位置可选参数 ``` echo(String name,[int age=12]){ print(name); print(age); } main() { echo("cc");//cc 12 } ``` list 或map 天界默认值 ``` void doStuff( {List<int> list = const [1, 2, 3], Map<String, String> gifts = const { 'first': 'paper', 'second': 'cotton', 'third': 'leather' }}) { print('list: $list'); print('gifts: $gifts'); } main() { doStuff(); } ``` ### 函数作为参数传入 ``` void printElement(int element) { print(element); } var list = [1, 2, 3]; // 将 printElement 函数作为参数传递。 list.forEach(printElement); ``` ### 匿名函数 ``` var a=["a","b","c"]; a.forEach((item){ print('${a.indexOf(item)}: ${item}'); }); //等价 list.forEach((item) => print('${list.indexOf(item)}: $item')); //output 0: a 1: b 2: c ```