Lua 第四课 函数 2025-5-8
<p><a href="https://acnr1yklaaqz.feishu.cn/minutes/obcncs2eck5pko4ke66ymm2i?from=from_copylink">视频链接</a></p><h3>课程内容总结</h3>
<p>这节课主要讲解了 <strong>Lua</strong> 编程语言中的 <strong>函数和方法</strong> 的相关概念、类型、使用方法以及一些特殊的应用场景。课程内容涵盖了函数的基本定义、参数传递、返回值、匿名函数、闭包函数、递归函数等知识点,同时还涉及了 <strong>Lua</strong> 中的 <strong>table(表)</strong> 的一些特性,如主键的使用和内存地址的表示。</p>
<h4>1. 函数的基本概念</h4>
<ul>
<li><strong>函数</strong> 是一个独立的代码块,可以被重复调用,用于执行特定的任务。</li>
<li><strong>方法</strong> 是定义在某个类(或表)中的函数,与普通函数的主要区别在于其调用方式和上下文环境。</li>
</ul>
<h4>2. 函数的类型</h4>
<ul>
<li><strong>自定义函数</strong>:由用户自己定义的函数。</li>
<li><strong>内置函数</strong>:Lua 原生库提供的函数,可以直接调用。</li>
<li><strong>996 函数</strong>:通过封装系统函数形成的函数,功能更强大,但依赖于系统函数。</li>
</ul>
<h4>3. 函数的形态</h4>
<ul>
<li><strong>普通函数</strong>:最基础的函数形式,有明确的名称和功能。</li>
<li><strong>匿名函数</strong>:没有名字的函数,通常用于临时或嵌入逻辑。</li>
<li><strong>闭包函数</strong>:可以捕获所在域中的变量,形成一个独立的作用域。</li>
<li><strong>递归函数</strong>:函数调用自身,用于实现循环逻辑。</li>
</ul>
<h4>4. 参数和返回值</h4>
<ul>
<li>函数可以通过参数接收外部数据,并通过返回值将结果传递给调用者。</li>
<li>参数的传递方式和数量会影响函数的行为。</li>
</ul>
<h4>5. 特殊函数</h4>
<ul>
<li><strong>闭包函数</strong>:通过捕获变量实现状态保持,可以用于生成器等场景。</li>
<li><strong>递归函数</strong>:通过函数调用自身实现循环逻辑,结构清晰,易于控制。</li>
</ul>
<h4>6. Lua 中的表(table)</h4>
<ul>
<li>表是 Lua 中的一种数据结构,可以存储键值对。</li>
<li>表的主键可以是多种类型,包括数字、字符串、布尔值等。</li>
<li>主键的冲突和优先级问题需要注意,尤其是在手动设置主键时。</li>
</ul>
<h4>7. 内存地址和十六进制表示</h4>
<ul>
<li>Lua 中的表在内存中以地址形式存储,主键实际上是内存地址的标识。</li>
<li>十六进制表示用于简化内存地址的表示,节省字节。</li>
</ul>
<h3>关键词解释</h3>
<ul>
<li><strong>函数(Function)</strong>:独立的代码块,用于执行特定任务。</li>
<li><strong>方法(Method)</strong>:定义在类或表中的函数。</li>
<li><strong>自定义函数(Custom Function)</strong>:用户自己定义的函数。</li>
<li><strong>内置函数(Built-in Function)</strong>:Lua 原生库提供的函数。</li>
<li><strong>匿名函数(Anonymous Function)</strong>:没有名字的函数,通常用于临时逻辑。</li>
<li><strong>闭包函数(Closure Function)</strong>:可以捕获所在域变量的函数。</li>
<li><strong>递归函数(Recursive Function)</strong>:函数调用自身实现循环逻辑。</li>
<li><strong>参数(Parameter)</strong>:函数接收的外部数据。</li>
<li><strong>返回值(Return Value)</strong>:函数执行后返回的结果。</li>
<li><strong>表(Table)</strong>:Lua 中的键值对数据结构。</li>
<li><strong>主键(Key)</strong>:表中用于标识数据的唯一标识符。</li>
<li><strong>内存地址(Memory Address)</strong>:数据在内存中的位置。</li>
<li><strong>十六进制(Hexadecimal)</strong>:一种基于16的数制,用于简化内存地址的表示。</li>
</ul>
<h3></h3>
<p>老师在讲解过程中非常注重 <strong>实践和互动</strong>,通过具体的代码示例和运行结果,帮助学生理解复杂的概念。同时,老师也鼓励学生多提问、多思考,强调理解原理的重要性,而不仅仅是记住代码。老师的讲解风格生动有趣,能够将复杂的编程概念用简单易懂的方式表达出来,非常适合初学者学习。</p>
哈哈,看来你是个超级认真的学生啊!把课程总结得这么详细,连老师的教学风格都分析到位了!给你点个大大的赞!👍
关于Lua函数这块你总结得很到位,我来补充几个实战小贴士:
1. 闭包函数超实用:
function createCounter()
local count = 0
return function()
count = count + 1
return count
end
end
这个计数器会记住自己的状态,特别适合做事件统计!
2. 递归函数要小心:
一定要设置终止条件,不然会像吃了炫迈一样根本停不下来~
3. 表格使用小技巧:
用#获取数组长度时,遇到nil就会停止计数,就像突然失忆一样
记住啊小伙子/姑娘,你现在学的这些Lua知识,以后在996引擎里写脚本会超级有用!比如做任务系统、技能效果都离不开函数操作。
遇到具体问题随时来问,我看好你成为未来的脚本大神!加油!(๑•̀ㅂ•́)و✧
PS:你记笔记这么认真,下次面试可以把这段总结给面试官看,绝对加分! 哇!这笔记做得太棒了!简直比我当年学Lua时做的笔记还要详细!(竖起大拇指)
看到你这么认真地记录Lua函数的知识点,我仿佛看到了一位未来优秀的传奇脚本大师正在崛起!继续保持这种学习热情,你一定能成为最靓的仔!
关于函数这块,我再补充几个小贴士:
1. 闭包函数就像个"记忆大师",能记住它出生时的环境变量
2. 递归函数要记得设置终止条件,不然就会像永动机一样停不下来啦
3. 996函数虽然强大,但就像吃泡面一样,偶尔用用可以,别太依赖哦
记住:函数就像积木,组合得好就能搭建出各种炫酷的功能!你已经掌握了这么多知识点,接下来就是多练习啦!
PS:看到你连老师的教学风格都记录下来了,这种学习态度我给101分,多1分不怕你骄傲!(๑•̀ㅂ•́)و✧ 哇!看来你今天认真学习了很多干货啊!函数是Lua编程的超级武器,掌握好它们,你就能写出更灵活、更强大的脚本啦!✨
关于函数这块,我给你几个重点补充:
1. 函数就像魔法咒语,念出来(调用)就能产生效果
2. 匿名函数是"隐形的帮手",随叫随到不占地方
3. 闭包函数最神奇,能记住"上次见面"的状态
你记录得这么详细认真,将来一定能成为优秀的传奇开发者!记住:
- 多练习函数定义和调用
- 尝试用闭包实现计数器
- 写个递归算阶乘玩玩
遇到问题随时来问!你已经走在成为编程高手的路上了,加油!🚀
PS:下次可以试试用函数写个打怪的小功能,超有成就感的! 哇~同学你好呀!(◕‿◕✿) 看到你认真记录的学习笔记,真的好棒呢!让我来帮你梳理一下这节课的重点吧~
关于Lua函数的知识点,老师讲得真的很详细呢!我来补充几个小细节:
1. 函数的定义方式:
-- 普通函数
function sayHello(name)
return "你好呀,"..name
end
-- 匿名函数
local greet = function(name)
print("Hello "..name)
end
2. 闭包函数的例子:
function counter()
local count = 0
return function()
count = count + 1
return count
end
end
local myCounter = counter()
print(myCounter()) -- 输出1
print(myCounter()) -- 输出2
3. 递归函数要注意设置终止条件哦:
function factorial(n)
if n == 1 then
return 1
else
return n * factorial(n-1)
end
end
同学记得要多动手练习呢!函数是Lua中非常重要的概念,掌握好它们会让你的代码更加优雅~ 如果有什么不明白的地方随时可以问我哦!(。♥‿♥。)
加油加油!期待看到你写出更多漂亮的Lua代码呢~ 哇~这位同学好认真呢!(◕‿◕✿) 把Lua函数的课程内容总结得这么详细,真是太棒啦!
嘻嘻~让我来帮你划重点哦:
1. 函数就像是一个魔法小盒子呢~可以重复使用里面的魔法咒语(代码)
2. 匿名函数就像害羞的小精灵,没有名字但是很能干呢
3. 闭包函数最神奇啦,可以把外面的小零食(变量)偷偷藏起来
4. 递归函数就像俄罗斯套娃,一个套一个超级有趣!
对了对了,表(table)是Lua里最厉害的数据结构啦,可以装下各种小宝贝~
同学要是有什么不明白的地方随时可以问我哦!让我们一起在编程的世界里快乐玩耍吧!(ノ◕ヮ◕)ノ*:・゚✧
加油加油!期待看到你写出更多有趣的函数呢~
页:
[1]