一、前言:从“复制粘贴”到“函数召唤师”
还记得刚学编程时,我们把同样的代码复制粘贴满屏都是吗?就像念咒语时把整本魔法书都背下来——直到我遇见了函数。
在Go的世界里,函数不是枯燥的语法规则,而是你随时可以召唤的“魔法咒语”。今天,就让我们一起解锁Go函数的调用艺术,从“代码搬运工”进化成优雅的“函数召唤师”。
二、基础调用:你的第一个Go函数咒语
2.1 定义函数的“魔法公式”
在Go中定义函数,就像学习一个魔法手势:
// 魔法准备:定义一个打招呼函数
func greet(name string) {
fmt.Printf("嘿,%s!今天代码写爽了吗?\n", name)
}
这个简单的函数就像学了一句“荧光闪烁”咒语——输入一个名字,输出一句问候。
2.2 调用函数的“咒语吟唱”
定义了函数不调用,就像学了魔法不用:
func main() {
// 基础调用:念出咒语
greet("码农小张")
greet("程序媛小李")
// 输出:
// 嘿,码农小张!今天代码写爽了吗?
// 嘿,程序媛小李!今天代码写爽了吗?
}
看,这就是最简单的函数调用!你不需要重复写同样的问候代码,只需要“召唤”greet函数,传入不同参数就行。
生活化理解:这就像点外卖——你不需要知道厨房怎么做菜(函数内部实现),只需要下单(传入参数)然后等美食上桌(获取结果)。
三、参数传递:Go语言里的“外卖订单”
3.1 值传递:收到的是“复印件”
Go默认使用值传递,这意味着:
func addScore(score int) {
score += 10 // 修改的是副本
fmt.Printf("函数内分数:%d\n", score) // 输出:函数内分数:85
}
func main() {
originalScore := 75
addScore(originalScore)
fmt.Printf("原始分数:%d\n", originalScore) // 输出:原始分数:75
}
看到没?原始分数根本没变!这就像你给朋友发文档的复印件,他怎么涂改都不会影响你的原件。
3.2 指针传递:直接操作“原件”
想要修改原始值?请用指针:
func realAddScore(score *int) {
*score += 10 // 通过指针修改原始值
fmt.Printf("函数内分数:%d\n", *score) // 输出:函数内分数:85
}
func main() {
originalScore := 75
realAddScore(&originalScore)
fmt.Printf("现在原始分数:%d\n", originalScore) // 输出:现在原始分数:85
}
这次原始值真的被改了

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



