Go 函数和方法
函数式编程的语言中,函数是一等公民(不是对象Object或Class),Go语言中也不例外.
函数:
函数声明:
func 函数名(参数列表) 返回值类型列表 { 函数体 }
函数声明包含一个函数名,参数列表, 返回值列表和函数体。如果函数没有返回值,则返回列表可以省略。函数从第一条语句开始执行,直到执行return语句或者执行函数的最后一条语句。
函数可以没有参数或接受多个参数。
// 加法
func Sum(num1 int, num2 int) int{
return num1 + num2
}
// 减法,多返回值必须用()括起来
func Subtraction(num1 int, num2 int) (int, error){
return num1 + num2,nil
}
函数也可以作为参数传递,复杂的函数签名(参数,返回值
)建议定义为函数类型,提高代码可阅读性
// 定义一个函数类型。
type FormatFunc func(x, y int) string
// 定义一个函数,第一个参数是 FormatFunc 类型
func format(fn FormatFunc, x, y int) string {
return fn(x, y)
}
func main() {
// 调用format函数;第一个参数传入匿名函数,匿名函数签名和 FormatFunc 一致
s2 := format(func(x, y int) string {
return fmt.Sprintf(s, x, y)
}, 10, 20)
println(s1, s2)
}
方法:
方法声明:
func (recevier type) 方法名(参数列表) 返回值类型列表 { 方法体 }
与函数声明类似;不同的是方法名前面多了一个接收者,意思该方法只能由type类型的实例或者指针
调用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具