Lua中的变量和流控制入门学习_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

时间: 2024-11-02 18:02:35

Lua中的变量和流控制入门学习_Lua的相关文章

Lua中的变量类型与语句学习总结_Lua

1. Lua类型 1.1 基本类型 Lua是一种动态类型语言,没有类型定义的语法.Lua一共有8种基础类型:nil(空).boolean(布尔).number(数字).string(字符串).userdata(自定义类型).function(函数).thread(线程).table(表). 函数type可根据一个值返回其类型名称(字符串),如print(type(print)),输出"function":print(type(type(X))) ,输出"string"

Lua中的元表与元方法学习总结_Lua

前言 元表对应的英文是metatable,元方法是metamethod.我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了"+"符号,就可以进行类的加法运算.在Lua中也有这个道理,两个table类型的变量,你是无法直接进行"+"操作的,如果你定义了一个指定的函数,就可以进行了.那这篇博文就是主要讲的如何定义这个指定的函数,这个指定的函数是什么?希望对学习Lua的朋友有帮助. Lua是怎么做的? 通常,Lua中的每个值都有一套预定义的操作集合,比如数

详解Lua中的变量相关知识点_Lua

 变量不过是存储到区域项目可以操作的名称.它可以容纳不同类型的值,包括函数和表格. 变量名可以由字母,数字和下划线.它必须以字母或下划线.大写和小写字母是不同的,因为Lua是区分大小写的.有八种基本类型值在Lua中: 在Lua,尽管我们没有变量的数据类型,我们基于该变量范围的三种类型.     全局变量:所有的变量默是全局除非显式地声明为局部.     局部变量:当类型被指定为局部的一个变量,它的范围是有限的在自己的范围内使用.     表字段:这是一种特殊类型的变量,可以除了nil,包括功能不

Lua中的迭代器和泛型for学习总结_Lua

前言 迭代器就是一种可以遍历一种集合中所有元素的机制,在Lua中,通常将迭代器表示为函数.每调用一次函数,就返回集合中的"下一个"元素.每个迭代器都需要在每次成功调用之后保存一些状态,这样才能知道它所在的位置及如何走到下一个位置,通过之前博文的总结,闭包对于这样的任务提供了极佳的支持.现在我们就用代码来实现一个简单的迭代器. 复制代码 代码如下: function values(tb)      local i = 0      return function ()          

Lua中的基本语法、控制语句总结_Lua

前言 学习一门语言,首先就是从最基本的语法开始,这一篇将对Lua中的语句进行概要的总结. 赋值 赋值的基本含义是修改一个变量或一个table中字段的值,这个和其它语言没有多少区别,但是对于Lua,有一个特性,它允许"多重赋值",也就是一下子将多个值赋予多个变量,例如以下代码: 复制代码 代码如下: local x1, x2 = 2, 4 print(x1)     -->2 print(x2)     -->4 在多重赋值中,Lua先对等号右边的所有元素求值,然后才执行赋值

深入解读Lua中迭代器与泛型for的使用_Lua

泛型for原理 迭代器是一种可以遍历集合中所有元素的机制,在Lua中通常将迭代器表示为函数,每调用一次函数,就返回集合中"下一个"元素.每个迭代器都需要在每次成功调用之间保持一些状态,这样才能知道它所在的位置及如何步进到下一个位置,closure就可以完成此项工作.下面的示例是列表的一个简单的迭代器: function values(t) local i = 0 return function() i = i + 1; return t[i] end end 循环调用: t = {10

Lua中的迭代器和泛型for介绍_Lua

任何一种结构,只要允许你遍历集合中所有元素的都可称之为迭代器.lua中常常使用函数来描述迭代器,每次调用该函数都返回集合的下一个元素.每一个迭代器都需要保存一些状态来知道当前处于什么位置和如何进行下一次迭代.对于这样的任务,闭包提供了很好的机制来完成.一个典型的闭包结构包含两个函数:一个是闭包自身,一个是创建闭包的工厂. 例如,我们可以写过简单的list迭代器,让他仅仅返回值. 复制代码 代码如下: function values( t )      local i = 0;      retu

Lua中全局变量与非全局环境介绍_Lua

今天来聊两个话题--全局变量和非全局环境. 正如大家目前心里所感受到的,全局变量的内容很简单,而非全局环境的内容就稍微要锻炼一下脑细胞了. 1.全局变量的原形 在Lua中,要声明全局变量很简单,那就是定义变量的时候,前面不要加上local. 这个神秘的全局变量,其实本质上也是一个table,它把我们创建的全局变量都保存到一个table里了. 而这个table的名字是:_G   我们来看看代码: 复制代码 代码如下:     -- 定义一个全局变量     gName = "哎哟,很挫哦"

Lua中的控制结构(流程控制)简明总结_Lua

在Lua中,所有的控制结构块都是以end作为结束标记. 控制结构的表达式结果可以是任何值,Lua下只有false和nil为假,其他值都为真. 1. if 复制代码 代码如下: if 条件 then     ... end;     if 条件 then     ... else     ... end;   if 条件 then     ... elseif 条件 then     ... else     ... end; then关键字用来标记有条件的代码块的开始. 2. repeat 复制