当前位置: 首页 > news >正文

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

在这里插入图片描述

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

函数的定义

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

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

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

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

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

带参数的函数

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

package mainimport "fmt"// 定义一个函数,接受两个整数参数并返回它们的和
func add(a, b int) int {result := a + breturn result
}func main() {num1 := 5num2 := 3sum := add(num1, num2)fmt.Printf("%d和%d的和是%d\n", num1, num2, sum)
}

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

leicw@Code AI世界:code007$ go run main.go
5和3的和是8

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

多返回值函数

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

package mainimport "fmt"// 定义一个函数,接受一个整数,返回它的平方和立方
func calculate(num int) (int, int) {square := num * numcube := num * num * numreturn square, cube
}func main() {number := 2sq, cb := calculate(number)fmt.Printf("%d的平方是%d,立方是%d\n", number, sq, cb)
}

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

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

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

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

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

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

http://www.dtcms.com/a/437945.html

相关文章:

  • Python核心架构深度解析:从解释器原理到GIL机制全面剖析
  • 数据结构_哈夫曼编码(Huffman)完整指南:从原理到实现,附考研真题详解
  • 怎样做网站吸引客户网站开发专业就业前系军
  • 四川建站模板网站公司有哪些做任务网站
  • 藏语自然语言处理入门 - 5 文本归类
  • Stanford CS336 assignment1 | Transformer Language Model Architecture
  • 告别人工出题!PromptCoT 2.0 让大模型自己造训练难题,7B 模型仅用合成数据碾压人工数据集效果!
  • Prompt Programming - 用文字重构AI智能体系
  • 基于提示学习的多模态情感分析系统:从MULT到PromptModel的华丽升级
  • Node.js 图形渲染库对比:node-canvas 与 @napi-rs/canvas
  • 【LangChain】P10 LangChain 提示词模板深度解析(一):Prompt Template
  • C# TCP 服务端开发笔记(TcpListener/TcpClient)
  • 180课时吃透Go语言游戏后端开发6:Go语言的循环语句
  • wordpress+vps建站关键词语有哪些
  • 网站建设基本标准野花高清中文免费观看视频
  • hadoop-hdfs
  • VB6.0找不到该引用word,excel“Microsoft Excel 16.0 Object Library”解决方法
  • 读者-写者问题实现真正的写优先
  • 北京人力资源网站县区网站集约化建设
  • 从零开始,用WPS和DeepSeek打造数字人科普视频
  • netgear r6220 路由器,刷openwrt后,系统备份还原
  • 特价流量网站什么情况自己建设网站
  • 昂瑞微IPO前瞻:技术破局高端射频模组,国产替代第二波浪潮下的硬科技突围
  • 开源 全平台 哔哩哔哩缓存视频合并 Github地址:https://github.com/molihuan/hlbmerge_flutter
  • EPOLLONESHOT事件类型:多线程I/O中的“一次触发“机制
  • Github卡顿问题解决方案
  • 智慧园区数字孪生建设方案(WORD)
  • GitHub 热榜项目 - 日榜(2025-10-03)
  • 【QT常用技术讲解】自定义支持多选项的下拉框
  • 网址注册了怎么做网站小说网站自主建设