lua 于php,lua · php编程实录 · 看云

本文介绍了如何在Linux环境下安装Lua,包括解决在安装过程中遇到的readline库缺失的问题。接着,概述了Lua的基本语法,如变量类型、数据类型、循环结构、函数以及文件I/O操作。特别强调了table作为关联数组的功能,以及如何使用lua交互式命令窗口。此外,还展示了如何使用不同类型的for循环以及如何定义和调用函数。
摘要由CSDN通过智能技术生成

[toc]

## 安装

```

curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz

tar zxf lua-5.3.5.tar.gz

cd lua-5.3.5

make linux test

make install

```

****

报错:`lua.c:82:31: fatal error: readline/readline.h: No such file or directory`

方案:

`yum install readline-devel`

## 语法

1. 启动lua交互命令窗口`lua`或者`lua -i`

2. 在文件开头加入`#!/usr/local/bin/lua`可以指定按照lua脚本来运行

3. 单行注释`--`

4. 多行注释

```

--[=[注释内容]=]

```

5. 仅当一个变量不等于nil时,这个变量即存在(删除变量,将其赋值为nil)

## 数据类型

1. nil:只有nil属于这个类型,表示一个无效值

nil做比较时需要加引号

2. boolean:true/false

3. number:双精度的实浮点数

4. string:[[]]也可表示字符串

字符串连接使用`..`

计算字符串长度用#

5. function:c或者lua编写的函数

6. userdata:表示任意存储在变量中的C数据结构

7. thread:执行的独立线路,用于执行协同程序

最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西.

线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停

8. table:关联数组。数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表

索引用1开始

## 变量

全局变量、局部变量(local)、表中的域

1. 遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以我们可以这样进行交换变量的值(x,y = y,x)

## 循环

### while

~~~

while(condition)

do

statements

end

~~~

### for

#### 数值for循环

~~~

for var=exp1,exp2,exp3 do

end

~~~

var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次执行体。exp3 是可选的,如果不指定,默认为1

#### 泛型for循环

~~~

--打印数组a的所有值

a = {"one", "two", "three"}

for i, v in ipairs(a) do

print(i, v)

end

~~~

### repeat...until

~~~

repeat

statements

until( condition )

~~~

先执行后判断,至少执行一次。类php的do while

## 函数

1. 加local表示局部函数

### 可变参数

1. `...`

2. 使用`local arg ={...}`

## 关系运算符

不等于`~=`

## 文件IO

```

-- 以只读方式打开文件

file=io.open("test.lua","r")

-- 设置默认输入文件为 test.lua

io.input(file)

-- 输出文件第一行

print(io.read())

-- 关闭打开的文件

io.close(file)

-- 以附加的方式打开只写文件

file=io.open("test.lua","a")

-- 设置默认输出文件为 test.lua

io.output(file)

-- 在文件最后一行添加 Lua 注释

io.write("--  test.lua 文件末尾注释")

-- 关闭打开的文件

io.close(file)

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值