Lua中的变量和流控制入门学习(变量作用域可以重叠吗)学到了

随心笔谈3个月前更新 admin
182 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章主要介绍了Lua编程语言的基础知识,包括以下几个核心内容: 1. **变量与数据类型**:所有数字都是双精度浮点数(double)。整数用52位精确表示,机器精度一般不是问题。 2. **字符串操作**:支持不可变字符串(如Python)、多行字符串(使用方括号)和符号引用(~表示不等于)。 3. **程序块控制**:使用`while`、`if`等关键字定义程序块,支持多行字符串和垃圾回收。 4. **条件判断**:支持标准的`if`语句,包括`elseif`和默认情况,默认变量为全局变量,`~=`用于不等于比较。 5. **局部变量与连接操作**:使用`local`定义局部变量,使用`..`连接字符串。 6. **未定义变量与布尔值**:未定义变量返回`nil`,只有`nil`和`false`为假值,`0`和空字符串为真值。 7. **循环结构**:支持范围循环(`for`语句)和递减范围循环。 8. **重复结构**:使用`repeat...until`语句实现循环,支持条件终止。 这篇文章通过具体的代码示例,简洁地介绍了Lua的基本语法和操作,适合初学者快速入门。



复制代码 代码如下:

num=42  — 所有的数字都是double。

— 别担心,double的64位中有52位用于

— 保存精确的int值; 对于需要52位以内的int值,

— 机器的精度不是问题。

复制代码 代码如下:

s=’walternate’  — 像Python那样的不可变的字符串。

t=”双引号也可以”

u=[[ 两个方括号

       用于

       多行的字符串。]]

t=nil  — 未定义的t; Lua 支持垃圾收集。

复制代码 代码如下:

— do/end之类的关键字标示出程序块:

while num < 50 do

  num=num + 1  — 没有 ++ or +=运算符。

end

复制代码 代码如下:

— If语句:

if num > 40 then

  print(‘over 40’)

elseif s ~=’walternate’ then  — ~=表示不等于。

  — 像Python一样,==表示等于;适用于字符串。

  io.write(‘not over 40\n’)  — 默认输出到stdout。

else

  — 默认变量都是全局的。

复制代码 代码如下:
  thisIsGlobal=5  — 通常用驼峰式定义变量名。
复制代码 代码如下:

  — 如何定义局部变量:

  local line=io.read()  — 读取stdin的下一行。

复制代码 代码如下:

  — ..操作符用于连接字符串:

  print(‘Winter is coming, ‘ .. line)

end

复制代码 代码如下:

— 未定义的变量返回nil。

— 这不会出错:

foo=anUnknownVariable  — 现在 foo=nil.

复制代码 代码如下:
aBoolValue=false

–只有nil和false是fals; 0和 ”都是true!

if not aBoolValue then print(’twas false’) end

复制代码 代码如下:

— ‘or’和 ‘and’都是可短路的(译者注:如果已足够进行条件判断则不计算后面的条件表达式)。

— 类似于C/js里的 a?b:c 操作符:

ans=aBoolValue and ‘yes’ or ‘no’  –> ‘no’

复制代码 代码如下:

karlSum=0

for i=1, 100 do  — 范围包括两端

  karlSum=karlSum + i

end

复制代码 代码如下:

— 使用 “100, 1, -1” 表示递减的范围:

fredSum=0

for j=100, 1, -1 do fredSum=fredSum + j end

 通常,范围表达式为begin, end[, step].

复制代码 代码如下:

— 另一种循环表达方式:

repeat

  print(‘the way of the future’)

  num=num – 1

until num==0

您可能感兴趣的文章:Lua中的变量类型与语句学习总结详解Lua中的变量相关知识点Lua教程(十): 全局变量和非全局的环境Lua判断变量是否为数字、字符串是否可以转换为数字等Lua中创建全局变量的小技巧(禁止未预期的全局变量)C语言中通过LUA API访问LUA脚本变量的简单例子Lua变量类型简明总结Lua中的全局变量、非全局变量总结Lua中全局变量与非全局环境介绍Lua中的变量与赋值方法

© 版权声明

相关文章