linux打开lua后中文有乱码,总结Lua使用中遇到的小问题
Lua可以被C/C++ 代码调用,反过来也可以调用C/C++的函数,这使得Lua被广泛应用。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。Lua在目前解释型脚本引擎中,速度是最快的,这决定了Lua嵌入式脚本的最佳选择。文章列举lua使用中遇到的小问题,做个汇总。
if判断
lua把 nil 和false 视为“假”,其他都为“真”
local变量声明
local var1=1,var2
以上 ,var1和var2的作用域不同,var1是所在作用域的变量,var2可能是全局变量。实际上述命令解释后为 var1 取 "1,var2" 组成的值第一个值,类似 local var1 = ...
正确的写法是:
local var1, var2=1
table是否为空
if a == {} then
结果是false,这是一个逻辑错误,实际比较table a的内存地址和一个匿名table的是否相同
正确的写法是:
if next(a) == nil then
多个变量赋值
name,name = 1,2
那name等于多少呢?
实际上name值为1,可以写个小例子 a,b = 2,3,4打印汇编码就可以看到了。 方法:luac -l test.lua
table的key规则
t[name]与t["name"], t.name
第一种和后两种是不同的,第一种会根据取name的值做key,后两种以 "name"做key。这种情况还有:
t = {[name] = 1}
t = {name = 1}
t = {["name"] = 1}
table引用问题
将一个table复制给另外一个table,修改这个新的table值会影响原来的table,但通过clone可以改变这一行为。
-- 下面的代码,t2 是 t1 的引用,修改 t2 的属性时,t1 的内容也会发生变化
local t1 = {a = 1, b = 2}
local t2 = t1
t2.b = 3 -- t1 = {a = 1, b = 3}
-- clone() 返回 t1 的副本,修改 t2 不会影响 t1
local t1 = {a = 1, b = 2}
local t2 = clone(t1)
t2.b = 3 -- t1 = {a = 1, b = 2}
这里也补充一个深度复制的函数:
function table.deepcopy(object)
local lookup_table = {}
local function _copy(object)
if type(object) ~= "table" then
return object
elseif lookup_table[object] then
return lookup_table[object]
end
local new_table = {}
lookup_table[object] = new_table
for index, value in pairs(object) do
new_table[_copy(index)] = _copy(value)
end
return setmetatable(new_table, getmetatable(object))
end
return _copy(object)
end
函数返回值
> function f123() return 1, 2, 3 end
> function f456() return 4, 5, 6 end
> print(f123(), f456())
1 4 5 6
> print(f456(), f123())
4 1 2 3
> print(f456())
4 5 6
> print(f456(),1)
4 1
如果函数不是处于列的最后一个,只返回一个值
Lua 的详细介绍:请点这里
Lua 的下载地址:请点这里
linux打开lua后中文有乱码,总结Lua使用中遇到的小问题相关推荐
- windows下的文本文件在linux下查看,中文显示乱码
windows下的文本文件在linux下查看,中文显示乱码 伏心救赎 2013-03-05 14:37:37 581 收藏 分类专栏: 基于类linux的开发 </div></div ...
- java乱码base64,解决 JAVA WebSocket 解析 base64 后中文字符串乱码
解决 JAVA WebSocket 解析 base64 后中文字符串乱码 解决 JAVA WebSocket 解析 base64 后中文字符串乱码 春风如贵客,一到便繁华.各位看官先赞再看,养成好习惯 ...
- 解决linux服务器上matplotlib中文显示乱码问题
解决linux服务器上matplotlib中文显示乱码问题 参考文章: (1)解决linux服务器上matplotlib中文显示乱码问题 (2)https://www.cnblogs.com/Bell ...
- MATLAB打开代码,中文注释乱码的解决方法
MATLAB打开代码,中文注释乱码的解决方法 由于matlab版本不同,其编码方式也不同.这边给出两种方法可解决这些问题(我的电脑是win11,2018a版本的matlab) 1.用电脑自带的记事本打 ...
- NotePad 打开文件 出现中文汉字乱码 解决办法
NotePad 打开文件 出现中文汉字乱码 解决办法 欢迎关注:程序员财富自由之路 现象: 出现中文汉字乱码: 解决办法: 先别着急用notepad修改编码 1. 用windows系统自带记事本打开, ...
- linux sqlplus显示乱码,scrt访问linux,sqlplus查询中文显示乱码
scrt访问linux,sqlplus查询中文显示乱码 2019-04-28 scrt访问linux时候,默认语言LANG=en_US.UTF-8.oracle查询默认语言NLS_LANG=AMERI ...
- linux打开二进制文件后终端乱码处理
linux环境所有东西都是用文件表示,有时候我们会不经意打开二进制文件,导致整个乱码 恢复的话,大致有以下几种方法: 方法一: 盲打输入echo -e '\xf'并回车.与这个命令相对的是echo - ...
- 报表在linux下部署后中文变成小方块
在Linux系统部署皕杰报表后,出来的中文变成了□□□□,或者斜线单元格里的字变成了□□ 在Linux系统部署皕杰报表后,出来的中文变成了□□□□,或者斜线单元格里的字变成了□□□□,或者导出pd ...
- Linux下pager-taglib分页中文搜索乱码
[问题描述]本人平时在Windows编程部署,使用的pager-taglib-2.0.jar是maven自动下载的,如果分页的同时提供搜索框进行中文搜索没有问题. 后来,项目部署上线,环境是Unbun ...
最新文章
- reddit android app,reddit安卓版app
- Nginx负载均衡配置实例详解(转)
- R 语言数据读取与存储
- metadata model entry in /IWFND/CL_MED_MDL_SVC_GRP
- 7-237 有理数加法 (15 分)
- Nginx、Apache工作原理以及nginx为何比Apache高效
- python的shutil模块是内置的_python内置模块~shutil
- 打破信息茧房-我主动获取信息的方法 -#3
- 解决VMware卸载后再安装出现的问题
- 快恢复二极管工作原理、反向恢复时间详解
- JAVA家教管理系统毕业设计 开题报告
- BeautifulSoup爬取豆瓣电影top250信息
- 史上最简单的springcloud微服务入门实例,开箱即用,工资翻倍不是梦
- 使用浏览器访问服务器端页面
- 手机APP开发之MIT Appinventor详细实战教程(十三),云服务器的数据遇到的问题和解决的方法,以及网页客户端的详细使用方法,WIFI通信,数据获取在one net平台的相关应用
- 【附源码】计算机毕业设计JAVA东理咨询交流论坛
- 简阳市简阳中学2021年高考成绩查询,四川省简阳中学2021年招生录取分数线
- 论文浅尝 | MISC:融合COMET的混合策略模型进行情感支持对话
- git 配置ssh 秘钥
- flutter 设置背景图片
热门文章
- Tensorflow——会话
- mysql 4升级,MySQL_Sql_打怪升级_进阶篇_进阶4:常见函数
- 实现贝叶斯分类器_从头开始在Python中实现高斯朴素贝叶斯
- 7天4场直播,涵盖DBA职业发展必备软实力、Oracle和MySQL技术等
- 两千字揭密 MySQL 8.0.19 三大索引新功能:隐藏索引,降序索引,函数索引
- 圣诞快乐:Oracle Database 19c 的10大新特性一览
- 填坑总结:python内存泄漏排查小技巧
- 队列Queue:任务间的消息读写,安排起来~
- 如何快速准备高质量的AI数据?
- 技巧收藏|10个JavaScript常用数组操作方法