Lua基础入门

本文深入解析Lua编程语言的基础知识,包括注释、控制语句、语句块、赋值语句、数学运算、比较符号、逻辑运算、关键字、变量类型、变量定义等核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lua

1.注释

单行注释:--

段落注释:--[[ ###### ]] (lua5.1中,中括号中间是可以加若干个“ = ”,eg:[==[ ...  ]==])

2.控制语句

if条件then...else..end  

while条件do...end   

for 变量do...end   

for a,b in mylist do print(a,b) end

3.语句块

语句块在C中使用{},在lua中,用do和end括起来 eg:do print("hello") end

4.赋值语句

默认情况下,变量总是认为是全局的,假如需要定义局部变量,则在第一次赋值的时候,需要用local说明,eg:local a = 1  --a是局部变量

5.数值运算

支持 + - * /,但是lua还多了一个乘方运算 ^, eg: 2^3 结果为8

链接两个字符串,用“ .. ” eg: "This a" .. "string"   --等于“This a string”

6.比较符号

== 等于,~= 不等于 

eg:

a={1,2}

b=a

print(a==b,a~=b)  --输出 ture,false

6.逻辑运算

and,or,not

在lua中,只有false和nil才计算为false,其他任何数据都计算为true,0也是true

a and b :如果a 为false,则返回a,否则返回b  eg:print(4 and 5)  --输出 5  print(nil and 5)--输出 nil

a or b :如果 a为true,则返回a,否则返回b     eg:print(4 or 5)--输出 4  print(false or 5)--输出5

注意:

C语言中的语句:x=a?b:c 在lua中,可以写为:x=a and b or c

x = x or v 相当于: if not x then x = v end

运算优先级,从低到高顺序如下:

or 

and

<  >  <=  >=  ~=  ==

..(字符串连接)

+ -

* / %

not #(lua5.1 取长度运算符)  -(一元运算)

^

和C语言一样,括号可以改变优先级

7.关键字

and  break do else elseif end false for function if in local nil not or repeat return then true until while

8.变量类型

用type()函数来检查变量类型,lua支持类型有以下几种:

Nil:              空值,所有没有使用过的变量,都是nil,nil既是值,又是类型

Boolean:  布尔值,只有两个有效值:true和false

Number:数值,在lua里,数值相当于C语言的double

String:     字符串,字符串可以包含“\0”字符的(和C语言总是以"\0"结尾是不一样的)

Table :     关系表类型

Function:  函数类型

Userdata: 这个是用来和lua的宿主打交道,宿主通常是为C和C++来编写的,这种情况下,Userdata可以是宿主的任意数据类型,常用的有Struct和指针

Thread:线程类型,在lua中没有真正的线程,lua中可以将一个函数分成几部分运行。

9.变量的定义

lua中,不管在什么地方使用变量,都不需要声明,并且所有的这些变量总是全局变量,除非我们在前面加上"local",区分大小写 “=”操作就是用来赋值的

a.Nil

没有使用过的变量的值,都是Nil。将一个变量清除时,可以直接赋值nil  eg:var1 = nil  --nil一定要小写

b.Boolean

布尔值有两种:true和false。

c.Number

在lua中,是没有整数类型的

d.String

字符串,在lua中最通用的方法是用单引号或双引号来括起来一个字符串,它也支持一些转义字符,

e.Table

关系表类型,

第一,所有元素之间,总是用逗号“,”隔开

第二,所有索引值需要用[]括起来,如果时字符串,还可以去掉引号和中括号

第三,如果不写索引,则索引就会被认为是数字,并按顺序自动从1往后编

f.Function

在lua中,

function add(a,b)  --add是函数名字,a和b是参数名字

return a+b                --return 用来返回函数的运行结果

end

注意:

return语言一定要写在end之前。假如我们非要在中间放上一句return,那么就应该要写成:do return end

内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真和实验验证了稳定性和综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化和自适应控制等性能提升策略,更全面地反映了群体智能协作和性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员和工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析和仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解和分析系统性能。通过阅读和实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值