6.1 Lua词法    语言的解析一般是两遍遍历的过程,第一遍生成AST,第二遍将AST翻译为字节码。    Lua使用一遍扫描代码文件的方式生成字节码,以加快解释执行的速度。但缺点是代码比较难以理解。如    dostat ->    DO      block  &n
转载 2024-03-19 22:35:03
411阅读
2012-12-06 15:06:56 Python/Ruby 注:以下例子选自LuaForWindows(LFW)组件QuickLuaTour,对其中做了一些主要的翻译并加上了个人的理解注释,没有安装过LFW的朋友可以一看,虽然例子很简单,但是对初学者快速入门会有所帮助。 关键词:LuaLua实例、QuickLuaTour、LFW、Lua入门 -- Example 1
Lua 中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1 的内嵌,而f1的外包也一定是f2的外包。内嵌函数可以访问
lua字符串内部存储分为短字符串和长字符串,可以从下面的宏看出:#define LUA_TSTRING 4 /* Variant tags for strings */ #define LUA_TSHRSTR (LUA_TSTRING | (0 << 4)) /* short strings */ #define LUA_TLNGSTR (LUA_TSTRING | (1 <
转载 2024-03-28 22:52:59
116阅读
Lua 协同程序Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。 线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。 在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时候才会被挂起。 协同程序有点类似
 Lua提供高级的require函数来加载运行库。粗略的说require和dofile完成同样的功能但有两点不同:1. require会搜索目录加载文件2. require会判断是否文件已经加载避免重复加载同一文件。由于上述特征,require在Lua中是加载库的更好的函数。require使用的路径和普通我们看到的路径还有些区别,我们一般见到的路径都是一个目录列表。r
转载 2024-04-23 10:32:18
66阅读
time:2015/05/14 描述   lua下使用node的pause函数想暂停layer上的所有动画,结果没有效果 1. pause函数 (1)cc.Node:pause 代码: void Node ::pause () { _scheduler-> pauseTarget(this ); _
转载 2024-03-29 12:31:59
172阅读
        从 Lua 的用户文档中我们知道 require("modName") 函数是用来加载模块的,而如果这个modName已经用require 加载过的,再调用require时,将直接返回模块的值。因为函数首先查找 package.loaded 表, 检测 modName 是否被加载过, 如果被加载过了,直
转载 2024-03-15 19:56:47
190阅读
最近在看协程相关的技术点,包括协程的概念,以及在PHP中的实现,可参考之前的内容《PHP中协程实现学习笔记》。很早就知道Lua支持协程,之前在业务中使用lua的时候也没有了解过协程,完全处于好奇,简单了解了下,很浅的了解,以下是笔记。一、简单回顾lua代码的执行0、Linux环境下一般都默认安装的有lua脚步解释器 lua -v Lua 5.1.4 Copyright (C) 1994-2008
函数 1. 基础知识调用函数都需要写圆括号,即使没有参数,但有一种特殊例外:函数若只有一个参数且参数是字面字符串或table构造式,则圆括号可有可无,如dofile 'a.lua',f{x=10, y=20}。 Lua为面向对象式的调用提供冒号操作符的特殊语法,如o.foo(o, x)等价于o:foo(x)。和Javascript类似,调用函数时提供的实参数量可以与形参数量不同,若实参多了则舍弃
第一:Lua函数调用的总体流程非保护性调用的流程更加简单,请追踪lua_call函数int docall (lua_State *L, int narg, int nres) | —— int lua_pcallk (lua_State *L, int nargs, int nresults, int errfunc ...) | —— luaD_pcall (lua_State *
转载 2024-05-07 16:43:00
79阅读
# 使用Python中的Lupa库执行Lua函数并获取输出 在本教程中,我们将学习如何使用Python中的Lupa库来执行Lua函数,并获取Lua脚本中的`print`输出。这个过程可以分为以下步骤: | 步骤 | 描述 | |------|------| | 1 | 安装Lupa库 | | 2 | 编写Lua代码 | | 3 | 使用Lupa在Python中执行Lua代码
原创 10月前
248阅读
openresty,lua,shell执行服务器脚本为什么不直接通过==php==来调用系统命令而单独写一个监控脚本呢?关于监控脚本为什么用==openresty/ngx_lua==怎么做?1.下载安装麻省理工==Juce==版的 ==lua_resty_shell==2.下载安装 ==sockproc==3. 编写lua脚本 最近安装了openresty ,想做一个通过git各大代码托管平台提
转载 2024-03-05 22:54:53
164阅读
# Python与Lua的桥梁:执行Lua函数并获取文件路径 在现代编程中,不同语言的互操作性显得尤为重要。Python是一个功能强大的脚本语言,而Lua则以其轻量和速度著称。在某些项目中,将这两种语言结合起来,以便充分利用它们各自的优势,是一种有效的方案。本篇文章将探讨如何在Python中执行Lua函数,并在Lua函数中获取文件路径。 ## 环境准备 在开始之前,我们需要确保安装了Pyth
原创 9月前
23阅读
目录一、lua是什么?二、lua的基本语法1.运行lua脚本文件2.注释3.标示符4.关键词5.全局变量Lua 基本语法 | 菜鸟教程一、lua是什么?一种脚本式编程。将lus程序代码保存到一个以lua结尾的文件,并执行,该模式成为脚本式编程。二、lua的基本语法1.运行lua脚本文件1.lua 脚本文件名执行hello.lua脚本文件命令为lua hello.lua2.在代码开头添加一行如下代码
#include "lua.hpp" #include <iostream> using namespace std; #pragma comment(lib, "lua5.1.lib") struct lua_guard{ lua_State *pL; lua_guard(lua_State *s) :pL(s){} ~lua_guard(){ lua_
转载 2024-01-31 00:43:28
136阅读
前言这时可以接触真正实用的东西了,毕竟变量也不能代表整个Javascript语言,虽然有些不可思议,但变量的确是Javascript必经之路之一,关于变量的奇特行为数不胜数(真的是这样),不过这些我想高阶Javascript都努力回避这些,新手也不懂,所以我就跳过了。下面的这些概念,无论是执行上下文、 还是执行栈,它在规范中的概念都很抽象,很多内容的理解实际靠的都是想象力,若有错误之处,还请指正。
最近因为项目的原因,开始研究log4cplus这个日志库。主要是把新版中增加的异步模式log用起来。异步log目前很少有人用,网上说明的资料比较少。看了很多源码,做了很多测试,走了些许弯路。因此打算把一点心得记录下来,为后面要用此功能的人增加一点参考资料。借此机会,正式开启我的技术博客之旅:)。 log4cplus通常有三种使用形式:stdout(打印到屏幕),文件日志和网络日志。最常用
转载 2024-04-09 09:13:41
148阅读
  lua是动态类型语言,变量不要类型定义。lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread和table。  可以通过type测试给定变量或者值的类型。 1 print(type("Hello world")) --> string 2 print(type(10.4*3))
转载 2024-03-28 05:05:19
128阅读
redis-2.6支持通过EVAL命令来执行lua脚本,对lua脚本的支持扩展了redis的应用场景,redis支持路脚本需要做2件事redis能执行lua脚本在lua脚本里能执行redis的命令接下来,我将通过一个简单的实例来解析redis如何完成上述两个工作的。 构建一个简单的redis#define DICT_SIZE 100 struct redisDict { char*
原创 2023-05-08 14:24:01
323阅读
  • 1
  • 2
  • 3
  • 4
  • 5