八、函数及相关
1 函数
和C语言一样,函数由返回值,函数名,函数体组成
int getNum(){}
方法调用,使用方法名调用即可
getNum();
2 参数
不指定类型参数
int sumNum(n){}
指定类型参数,和C语言一摸一样
int sumNum(int n,String str){}
3 可选参数
中括号内的参数可传可不传
String getUser(String name,[int age,String sex]){}
getUser('张三');
getUser('张三','男');
4 带默认参数
String getUser(String name,[int age,String sex = ‘男’]){}
getUser('张三',20,'女');
5 命名参数
String getUser(String name,{int age,String sex = ‘男’}){}
getUser('张三',age:20,sex:'女');
6 方法作为参数
1 2 3 4 5 6 7 8 9 | a(){ print( "aaaa" ); } fn(aaa){ aaa(); } fn(a); |
7 匿名方法
1 2 3 4 5 | var fn=( int n){ print( "这是个匿名方法" +n); }; fn(1); |
8 箭头函数(注意:方法体只能写一句话,并且不要加分号)
1 2 | List items = [1,2,3,4]; var newList = items.forEach((value)=>print(value)); |
1 2 3 4 | List items = [1,2,3,4]; var newList = items.forEach((value)=>{ print(value) }); |
9 自执行方法
1 2 3 4 5 6 7 8 | ((){ print( "这是自执行方法" ); })(); //带参数 String str = 'aaaa' ; ((String args){ print( "$args" ); })(str); |
10 闭包
闭包的产生及作用:
全局变量特点: 全局变量常驻内存,全局变量污染全局
局部变量特点: 不常驻内存,会被垃圾回收机制回收,不会污染全局
闭包产生:常驻内存,不污染全局
闭包本质:函数嵌套函数,内部函数会调用外部函数的变量或参数。
1 2 3 4 5 6 7 8 9 10 11 | fn(){ var a=123; return (){ a++; print(a); }; } var b = fn(); b(); b(); b(); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具