180课时吃透Go语言游戏后端开发7:Go语言中的函数

第7节课我们来学习Go语言中的函数。函数就像是游戏里的一个个"小助手",它们能帮我们完成特定的任务,并且可以在程序的不同地方重复使用,让代码更加简洁和有条理。

函数的定义

Go语言中函数定义的基本格式如下:

go 复制代码
package main

import "fmt"

// 定义一个简单的函数,打印问候语
func greet() {
    fmt.Println("Hello, 欢迎来到Code AI世界!")
}

func main() {
    // 调用函数
    greet()
}

将以上代码写入main.go,运行结果如下:

bash 复制代码
leicw@Code AI世界:code007$ go run main.go
Hello, 欢迎来到Code AI世界!

在这个例子中,func 关键字表示定义一个函数,greet 是函数名,后面的括号 () 里可以放参数,如果没有参数就留空。函数体放在大括号 {} 里,这里面的代码就是函数被调用时要执行的内容。在 main 函数里,我们通过 greet() 来调用这个函数,从而打印出问候语。

带参数的函数

函数可以接受参数,这些参数就像是给"小助手"的任务说明。

go 复制代码
package main

import "fmt"

// 定义一个函数,接受两个整数参数并返回它们的和
func add(a, b int) int {
    result := a + b
    return result
}

func main() {
    num1 := 5
    num2 := 3
    sum := add(num1, num2)
    fmt.Printf("%d和%d的和是%d\n", num1, num2, sum)
}

将以上代码写入main.go,运行结果如下:

bash 复制代码
leicw@Code AI世界:code007$ go run main.go
5和3的和是8

这里 add 函数接受两个 int 类型的参数 ab,函数体计算它们的和并通过 return 关键字返回结果。在 main 函数里,我们定义了 num1num2 两个变量,然后调用 add 函数并传入这两个变量,最后打印出计算结果。

多返回值函数

Go语言的函数还可以返回多个值。

go 复制代码
package main

import "fmt"

// 定义一个函数,接受一个整数,返回它的平方和立方
func calculate(num int) (int, int) {
    square := num * num
    cube := num * num * num
    return square, cube
}

func main() {
    number := 2
    sq, cb := calculate(number)
    fmt.Printf("%d的平方是%d,立方是%d\n", number, sq, cb)
}

将以上代码写入main.go,运行结果如下:

bash 复制代码
leicw@Code AI世界:code007$ go run main.go
2的平方是4,立方是8

calculate 函数接受一个整数参数 num,返回 num 的平方和立方两个结果。在 main 函数里,我们通过两个变量 sqcb 来接收这两个返回值并打印。

在游戏开发中,函数的作用可大了。比如可以定义一个函数来计算角色的伤害值,接受角色的攻击力、技能加成等参数,返回实际造成的伤害;或者定义一个函数来加载游戏资源,这样在不同的场景需要加载资源时,直接调用这个函数就行。

现在你可以尝试修改这些函数示例,比如增加更多参数、改变返回值类型,通过实践来更好地理解函数的使用。要是在学习过程中有任何疑问,欢迎评论区留言。

每一次点赞 ,都是你无声的鼓励。每一次关注,都是我前行的动力。感谢有你,一起成长!

相关推荐
万邦科技Lafite23 分钟前
京东按图搜索京东商品(拍立淘) API (.jd.item_search_img)快速抓取数据
开发语言·前端·数据库·python·电商开放平台·京东开放平台
Never_Satisfied2 小时前
在JavaScript / Node.js / 抖音小游戏中,使用tt.request通信
开发语言·javascript·node.js
爱吃小胖橘3 小时前
Unity资源加载模块全解析
开发语言·unity·c#·游戏引擎
Yeats_Liao4 小时前
Go Web 编程快速入门 10 - 数据库集成与ORM:连接池、查询优化与事务管理
前端·数据库·后端·golang
千里镜宵烛4 小时前
Lua-迭代器
开发语言·junit·lua
渡我白衣5 小时前
C++ 同名全局变量:当符号在链接器中“相遇”
开发语言·c++·人工智能·深度学习·microsoft·语言模型·人机交互
淮北4945 小时前
html + css +js
开发语言·前端·javascript·css·html
源码_V_saaskw5 小时前
JAVA国际版二手交易系统手机回收好物回收发布闲置商品系统源码支持APP+H5
java·开发语言·微信·智能手机·微信小程序·小程序
java1234_小锋6 小时前
PyTorch2 Python深度学习 - PyTorch2安装与环境配置
开发语言·python·深度学习·pytorch2