-- test lua: for learning lua grammar

-- line comment
--[[
block comment
]]-- -- print hello world
print('Hello World\n') -- control structure
-- if
if 1+1 == 2 then print('1+1=2') end
if 1+1 == 2 then
print('1+1=2')
elseif 1+1 == 3 then
print('1+1=3')
else
print('1+1=?')
end -- while
local n = 2
while n > 0 do
print('while ' .. n)
n = n - 1
end -- repeat
n = 2
repeat
print('repeat ' .. n)
n = n - 1
until n <= 0 -- for
for i = 1, 2, 1 do
print('for ' .. i)
end -- for array
arr = {1, 2}
for i, v in ipairs(arr) do
print('arr ' .. i .. ' ' .. v)
end -- for table
t = {
name = 'adfan',
age = 20,
[2] = 30,
}
for k, v in pairs(t) do
print('table ' .. k .. ' = ' .. v)
end -- assign
a, b, c, d = 1, 2, 3, 4
print(a, b, c, d)
-- exchange a, b
a, b = b, a
print(a, b) -- math
print(2 ^ 4) -- 2 power 4 = 16 -- compare
print(1 ~= 2) -- not equal -- logic
--[[
Note: only false or nil are false, others are true (0 is alse true!)
a and b: if a is false, return a; else return b (return the first false)
a or b: if a is true, return a; else return b (return the first true)
]]--
print(true and 5) -- 5
print(false and true) -- false
print(true and 5 and 1) -- 1 print(false or 0) -- 0
print(nil or 1) -- 1 print(not nil) -- true
print(not 0) -- false: as 0 is true a, b, c = 1, nil, 3
x = a and b or c -- not means a ? b : c, as when b is false, x equals c..
print(x)
x = x or a -- means if not x then x = v end
print(x) -- opr inc order:
--[[
or
and
< > <= >= ~= ==
..(string plus)
+ -
* / %
not #(get length) -
^
]]-- -- var type
print('type nil ' .. type(nil))
print('type true ' .. type(true))
print('type 1 ' .. type(1))
print('type str ' .. type('adfan'))
print('type table ' .. type({1, 2, 3}))
print('type function ' .. type(function () end))
-- user data -- local means local var, without local means global var
-- table
t = {
10, -- means [1] = 10
[100] = 40,
John = {
age = 27,
gender = male,
},
20 -- means [2] = 20
} -- function
function add(a, b)
return a + b
end function sum(a, b, ...)
c, d = ...
print(...)
print(a, b, c, d)
return 14, 13, 12, 11
end
a, b, c, d = sum(1, 2, 3, 4)
print(a, b, c, d)

lua——基础语法的更多相关文章

  1. Lua基础语法讲解

    Lua 是什么? Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua 是巴西里约热内卢天主教大学( ...

  2. Lua - 基础语法

    Hello World 交互式编程 Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用: [huey@huey-K42JE lua]$ lua Lua 5.1.4 Copyright ...

  3. (一)lua基础语法

    1.从hellowrold开始 --语法和Python比较类似,直接像Python一样使用print即可 --这里我可以直接写中文,显然被当成了注释.在lua中,两个-表示注释 --[[ 这种形式可以 ...

  4. Nginx详解二十二:Nginx深度学习篇之Lua解释器安装及基础语法

    解释器 Lua:Lua是一个简洁.轻量.可扩展的脚本语言 Nginx+Lua优势充分的结合Nginx的并发处理epoll优势的Lua的轻量实现简单的功能切高并发的场景 安装Lua 1.安装解释器:yu ...

  5. 大体了解Lua的语法

    Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱. 在Lua中,一切都是变量,除了关键字.请记住这句话. I. 首先是注释 写一个程序,总是少不了注释的. 在Lua中,你可以使用单行注释和多 ...

  6. Lua基础 函数(一)

    转自: http://blog.csdn.net/wzzfeitian/article/details/8653101 在Lua中,函数是对语句和表达式进行抽象的主要方法.既可以用来处理一些特殊的工作 ...

  7. Python学习的个人笔记(基础语法)

    Python学习的个人笔记 题外话: 我是一个大二的计算机系的学生,这份python学习个人笔记是趁寒假这一周在慕课网,w3cschool,还有借鉴了一些博客,资料整理出来的,用于自己方便的时候查阅, ...

  8. python基础语法及知识点总结

    本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...

  9. Cocos2d-x 脚本语言Lua基本语法

    Cocos2d-x 脚本语言Lua基本语法 前面一篇博客对Lua这门小巧的语言进行了简单的介绍.本篇博客来给大家略微讲一下Lua的语法.不会长篇累牍得把Lua的全部语法都讲一遍,这里通过下面几点来讲L ...

随机推荐

  1. PYday16&17-设计模式\选课系统习题

    1.设计模式:对程序做整体得规划设计,这样做是为了更好的实现功能,使代码的可扩展性更好有27种常见的设计模式.流行的设计模式参考书:GoF设计模式.大话设计模式设计模式是为了更好的实现模块间的解耦,便 ...

  2. react技术栈实践(1)

    本文来自网易云社区 作者:汪洋 背景 最近开发一个全新AB测试平台,思考了下正好可以使用react技术开发. 实践前技术准备 首先遇到一个概念,redux.这货还真不好理解,大体的理解:Store包含 ...

  3. 图解spring事务管理的实现

  4. Jmeter测试https协议

  5. 大数据学习——spark-steaming学习

    官网http://spark.apache.org/docs/latest/streaming-programming-guide.html 1.1.  用Spark Streaming实现实时Wor ...

  6. TensorFlow学习笔记(6):TensorBoard之Embeddings

    本文基于TensorFlow官网的How-Tos写成. TensorBoard是TensorFlow自带的一个可视化工具,Embeddings是其中的一个功能,用于在二维或三维空间对高维数据进行探索. ...

  7. 配置CORS解决跨域调用—反思思考问题的方式

    导读:最近都在用一套完整的Java EE的体系做系统,之前都是用spring框架,现在弄这个Java EE,觉得新鲜又刺激.但,由于之前没有过多的研究和使用,在应用的过程中,也出现了不少的问题.累积了 ...

  8. ThinkPHP5杂技(一)

    Thinkphp5 assign 传递 " 时 ,前台收到的是 " 和ThinkPHP3.2不一样,3.2收到的是 ”,传递给js时 用的data.replace(new RegE ...

  9. struts拦截器详解

    拦截器是Struts2最强大的特性之一,它是一种可以让用户在Action执行之前和Result执行之后进行一些功能处理的机制. 说到拦截器interceptor,就会想到过滤器filter: 过滤器f ...

  10. C++之Effective STL学习笔记Item20

    Q:假设我们现在需要一个string*的set,我们向其插入一些动物到这个set中: set<string*> ssp; // ssp = “set of string ptrs” ssp ...