
函数入门:让代码听话的“指令包”
上课日期: 2024年11月9日
上课时间: 下午 10:42
上课时长: 47分钟 59秒
一、这节课到底在学什么?
这节课的核心是学习 函数(Function)。你可以把函数理解为一个打包好的指令集合,就像一个“任务包”或“指令包”。当我们需要重复完成某个任务时,不需要每次都写一遍相同的代码,只需“调用”这个函数包,它就会自动执行里面的所有指令。这节课就是教你如何创建和使用这些高效的“指令包”。
二、课程时间线梳理
- 开场-约15分钟: 讲解了函数的基本概念。通过对比有函数和没有函数的代码写法,直观展示了函数封装代码、避免重复的作用。
- 约15-25分钟: 讲解了函数的参数和返回值。重点说明了参数如何像“任务要求”一样传递给函数,以及返回值如何将“任务结果”带回来。
- 约25-35分钟: 深入介绍了函数的多种形态,包括匿名函数(没有名字的函数)和 Lua函数作为“一等公民” 的四大特性(可赋值、可传参、可作返回值、可存入表)。
- 约35-40分钟: 讲解了局部函数与全局函数的区别,以及使用局部函数避免命名冲突(代码污染)的重要性。
- 约40-47分钟: 结合996引擎开发的实际场景,分析了函数如何作为“控制指令”与游戏引擎底层交互,并演示了一个简单的购买物品的函数例子。
三、重点知识点总结
-
函数的本质:函数是一个封装了一段代码的集合,目的是为了被重复调用执行。
-
函数的两个关键部分:函数名(如何调用它)和参数(执行任务所需的信息)。
-
返回值:函数执行后,可以通过 return 关键字将结果返回给调用者。这是函数输出结果的方式。
-
匿名函数:没有名字的函数,通常直接赋值给变量或作为参数传递,也称为闭包的基础。
-
一等公民:在Lua中,函数享有很高权限,具体表现为:
- 可以赋值给变量。
- 可以作为参数传递给其他函数。
- 可以作为其他函数的返回值。
- 可以存储在table(表)中。
-
局部函数:使用 local 关键字定义的函数,作用范围有限,可以有效避免变量名冲突(污染全局环境),是良好的编程习惯。
-
函数与引擎的关系:我们编写的脚本函数,本质上是向游戏引擎(后端)发送的控制指令,引擎接收到指令后执行相应的底层操作。
四、学完这节课你能掌握
- 理解核心概念:明白函数是什么,以及为什么使用函数可以让代码更简洁、更易维护。
- 学会基本操作:能够定义自己的函数,并正确地传递参数和使用返回值。
- 区分函数类型:了解全局函数和局部函数的区别及应用场景。
- 建立开发思维:初步建立通过函数作为“指令”与游戏引擎交互的脚本开发思维,为后续学习更复杂的功能打下坚实基础。
课程评价:
本节课讲师从最基础的概念入手,通过生动的比喻(如“让小文去超市买东西”)和即时的代码演示,将函数这一抽象概念讲解得非常通俗易懂。课程内容由浅入深,从理论到实践,特别是最后结合996引擎的实际应用进行讲解,很好地帮助学员建立了知识与实际开发场景的联系。讲师与学员互动积极,课堂氛围轻松,是一位经验丰富、善于引导的老师。
课程入口