Go Lang 函数
- Go的函数不支持重载
- 通过指针可以实现引用传递
- 返回值如果定义了,在调用函数的时候必须要有变量去接返回值或者使用关键字"_"
- 如果要跨包调用,首字母要的大写
- 函数本身也可以作为参数
// function
package main
import "fmt"
//全局变量
var testInt int = 1
func main() {
//局部变量
var strA, strB string="strA","strB"
res:=plus(10,20);
fmt.Println(res);
res=pluaAll(1,2,3,4,5,6,7,8);
fmt.Println(res);
fmt.Println(strA,strB)
//strA和strB有作用域的关系无法实现交换
exchangeStr(strA,strB)
fmt.Println(strA,strB)
//通过指针实现值的交换
exchangeStr_point(&strA,&strB)
fmt.Println(strA,strB)
//将函数作为参数
test02(20, test01);
fmt.Println(testInt);
//为testInt赋值
assignTestInt(50);
fmt.Println(testInt);
}
func plus(a int, b int) (int){
return a+b;
}
// 可变参数
func pluaAll(args...int) (int) {
var sum int=0;
for i:=0;i<len(args);i++{
sum+=args[i];
}
return sum
}
func exchangeStr(strA string,strB string) {
var strTemp string;
strTemp=strA;
strA=strB;
strB=strTemp;
fmt.Println("inside exchangeStr",strA,strB)
}
func exchangeStr_point(strA *string, strB *string){
var strTemp string;
strTemp=*strA;
*strA=*strB;
*strB=strTemp;
}
func test01(a int){
fmt.Println("test01, arg=", a);
}
//将函数作为参数
func test02(a int, testFunc func(int)){
fmt.Println("test02, arg=", a);
a=100;
testFunc(a);
}
func assignTestInt(a int){
testInt=a;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具