当前位置: 首页 > news >正文

Lua中loadstring的使用

Lua中loadstring的使用

引子

分析

实现

溯源


引子

将一个table类型的字符串转成table!

例如:"{id = 1, num = 666}"->{id = 1, num = 666}

分析

如果暴力解析这个字符串,也是可以将这个table解析出来的,但是这种做法太莽了,当table的结构比较复杂的时候,就有点蛋疼了!

使用loadstring就优雅多了,一行代码搞定!

实现

-- Hello 1024 !
local tblStr = "{id = 1, num = 666}"
local tbl = assert(loadstring("return " .. tblStr))()
for k, v in pairs(tbl) do
    print(k, v)    
end
--[[
num	666
id	1
]]

溯源

loadstring的用法:将传入的代码块编译好之后以函数的形式返回!所以loadstring的返回值是一个function,如果传入的代码块有语法错误则返回nil!

e.g.

func = loadstring("return {id = 1, num = 666}")
func()

等价于:

func = function()
    return {id = 1, num = 666}
end
func()

ps

1、loadstring在从lua5.3开始就被干掉了,直接用load即可!

2、lua执行器(lua.exe)下载:进入URL选择对应的版本,然后进入Tools Executables找到对应平台的压缩包下载即可!

相关文章:

  • 玩转“网上邻居”之浏览服务原理(一)
  • 玩转“网上邻居”之浏览服务原理(二)
  • cocos2d-lua:控件长按处理
  • 《网络工程师必读——网络系统设计》上市了
  • cocos2d-lua:控件翻转
  • 简单锁机脚本
  • cocos2d-lua:PageView的使用
  • 游戏机迎来新“三国时代”
  • Lua中字典型table的增删操作
  • Lua实战之整体移动table中的元素
  • IT人如何生存
  • cocos2d-lua:获取子节点
  • cocos2d-lua:剪裁头像
  • Symbian中操作ini文件
  • Lua中保留两位小数
  • 【刷算法】从上往下打印二叉树
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • nginx 负载服务器优化
  • Protobuf3语言指南
  • react-native 安卓真机环境搭建
  • RxJS: 简单入门
  • Shadow DOM 内部构造及如何构建独立组件
  • vue-router的history模式发布配置
  • 百度小程序遇到的问题
  • 基于HAProxy的高性能缓存服务器nuster
  • 聊聊hikari连接池的leakDetectionThreshold
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端面试之CSS3新特性
  • 网络应用优化——时延与带宽
  • 赢得Docker挑战最佳实践
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #{} 和 ${}区别
  • (1)(1.11) SiK Radio v2(一)
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (转)菜鸟学数据库(三)——存储过程
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET 命令行参数包含应用程序路径吗?
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .Net转前端开发-启航篇,如何定制博客园主题
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [<死锁专题>]
  • [1181]linux两台服务器之间传输文件和文件夹
  • [2018-01-08] Python强化周的第一天
  • [20190401]关于semtimedop函数调用.txt
  • [383] 赎金信 js