Go语言中的函数
函数的用法
| func function_name( [parameter list] ) [return_types] { |
| 函数体 |
| } |
| package main |
| import "fmt" |
| |
| func main() { |
| var x int = sumTwoNumber(3,4) |
| fmt.Printf("%d", x) |
| } |
| |
| func sumTwoNumber(a, b int) (int) { |
| |
| var result int; |
| result = a + b |
| return result |
| } |
无参数无返回值的函数
| |
| func NoAll()() { |
| fmt.Printf("我是一个什么也没有的函数\n") |
| } |
无参数有返回值的函数
| func NoParam() (string) { |
| return "我是一个无参数但是有返回值的函数" |
| } |
有参数有返回值的函数
| |
| func sumTwoNumber(a, b int) (int) { |
| |
| var result int; |
| result = a + b |
| return result |
| } |
多返回值的函数
| |
| |
| func swapStrings(oldString01,oldString02 string) (string,string) { |
| return oldString02 ,oldString01 |
| } |
返回值的命名
在go语言中可以对返回值的参数进行命名
| package main |
| import "fmt" |
| func main() { |
| var a string |
| var b bool |
| a,b = Inc() |
| fmt.Printf("%v:%v\n", a,b) |
| |
| } |
| func Inc()(value string,ok bool){ |
| m :=make(map[string]string) |
| m["address"]="地址" |
| value,ok = m["address"] |
| return |
| } |
Go函数的闭包
Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。
| func main() { |
| var param int =0 |
| FunctionA:=GetFunction() |
| param =FunctionA() |
| fmt.Printf("%d\n", param) |
| } |
| |
| |
| func GetFunction() (func () (int) ) { |
| var i int = 0 |
| return func()(int){ |
| var result int = i |
| result++ |
| return result |
| } |
| } |
![image-20221003171608247]()
Go语言泛型函数
| func AddFloat(a, b float64) float64 |
| |
| func Add[T any](a, b T) T |
comparable 包
Go 内置提供了一个 comparable 约束,表示可比较的。参考下面代码:
| |
| func ForEach[T comparable] (Array[] T)(){ |
| for key, value := range Array { |
| fmt.Printf("第%d个值:%v\n", key,value) |
| } |
| } |
Go语言的标准输入输出
| package main |
| import ( |
| "fmt" |
| ) |
| func main() { |
| var str string |
| fmt.Scanln(&str) |
| fmt.Printf("INPUT :%s\n", str); |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话