在我的lua程序中,我想在继续操作之前停下来并要求用户确认.我不知道如何停止并等待用户输入,怎么办呢?
我在我的C++应用程序中嵌入了Lua.我想重定向打印语句(或者只是简单地重新定义打印函数?),这样我就可以在其他地方显示已计算的表达式.
执行此操作的最佳方法是:重定向或重新定义print()函数?
任何显示如何执行此操作的片段/指针将非常感激.
我刚从官方网站上下载了Lua.
我想在我的Mac上安装它,但我不知道如何.我从来没有尝试过使用Mac来安装和使用其他编译器(xcode,titanium,corona),这对我来说很容易:)
我试过这个链接,但它不起作用.
还有一个完全指导如何在Mac上安装和开始使用Lua?因为我看到的只是windows:S
注意:在我问这个问题之前,我搜索过SOV,但是我找不到答案.
Lua在Windows XP SP3上获取当前工作目录(或获取当前运行的Lua文件的目录)是什么?我不想使用LuaFileSystem.
我无法使用os.execute("cd")因为os.execute总是从我的主目录开始(因此总是产生C:\Documents and Settings\username).
我已经将Lua与我的ObjC代码(iphone游戏)集成在一起.设置非常简单,但现在,我对桥接有一点问题.我搜索结果等等......似乎没有任何东西可以在没有修改的情况下工作.我的意思是,我已经检查了luaobjc桥(看起来相当古老和连续),我听说LuaCocoa但它似乎不适用于iPhone,蜡太厚了.
我的需求非常多,我只需要能够从lua调用objc方法,并且不介意做额外的工作以使其工作(我不需要一个完全自动的桥接系统).
所以,我决定自己建立一个小桥,基于这个页面http://anti-alias.me/?p=36.它有关于如何完成我需要的关键信息,但教程没有完成,我对从lua等调用时如何处理方法重载有一些疑问......
有人知道在iPhone上的objc和lua之间是否存在任何工作桥梁,或者是否可能很难完成上述网站提供的桥接?
任何信息都将受到欢迎.
我有一个嵌入Lua的程序,并实现了一种惰性函数查找.
它在Lua 5.1中的工作方式,只要符号未定义,解释器就会调用一个全局函数钩子来解析符号.
这是实现这个惰性函数查找的C代码的一小部分:
int function_hook(lua_State *pLuaState)
{
// do the function lookup here
....
return 1;
}
......
//-- create table containing the hook details
lua_newtable(pLuaState);
lua_pushstring(pLuaState, "__index");
lua_pushcfunction(pLuaState, function_hook);
lua_settable(pLuaState, -3);
//-- set global index callback hook
lua_setmetatable(pLuaState, LUA_GLOBALSINDEX);
Run Code Online (Sandbox Code Playgroud)
我现在正试图将此代码移至Lua 5.2并遇到问题.
在Lua 5.2中,不再定义LUA_GLOBALSINDEX值,因此这行代码不再编译.
//-- set global call back hook
lua_setmetatable(pLuaState, LUA_GLOBALSINDEX);
Run Code Online (Sandbox Code Playgroud)
LUA_GLOBALSINDEX 有一个对此更改的引用,但不幸的是它没有帮助.
重写这一行代码以便解释器在找到未解析的符号时调用function_hook的最佳方法是什么?
我正在研究用C编写的简单堆栈机器,主要用于学习目的.在malloc/free用于我的内存操作后,我认为从现代虚拟机中读取一些特定于内存分配的代码是个好主意.
我下载了Lua源代码并开始阅读它.过了一会儿,我意识到涉及很多宏的东西,我找不到真正的内存分配完成的代码(即malloc调用).
find . -exec grep -i "malloc" '{}' \; -print
Run Code Online (Sandbox Code Playgroud)
它只打印了一些malloc名字中包含单词的Lua宏.Lua VM(和编程语言)根本不使用malloc!
所以这引出了一个问题:现代虚拟机如何处理内存分配?Lua如何从堆中分配内存?除了以外有什么方法可以分配malloc吗?其他方法的优缺点是什么?
我也想知道安全地处理分配的内存的最佳实践,设计模式等.我在Lua的源代码中看到,在分配内存之前有很多间接.我在哪里可以了解这些东西?
什么是函数的反函数
math.atan2
Run Code Online (Sandbox Code Playgroud)
我用这个在LUA哪里可以得到的逆math.atan通过math.tan.
但我迷失在这里.
编辑
好的,让我提供更多细节.
我需要计算2点(x1,y1)和(x2,y2)之间的角度
local dy = y1-y2
local dx = x1-x2
local angle = atan2(dy,dx)* 180 / pi
Run Code Online (Sandbox Code Playgroud)
现在如果我有角度,是否有可能回到dy和dx?
对于在Lua协程的支持是由提供的功能在coroutine表,主要是create,resume和yield.开发人员将这些协同程序描述为堆栈,一流和非对称.
协程也可在Python,或者使用增强发电机(和yield from)或在3.5版本中增加,async和await.
Python中的协程如何与Lua中的协程相比?它们是堆叠的,一流的还是不对称的?
为什么Python的需要如此多的结构(async def,async with,async for,异步内涵,...)的协同程序,而Lua中能为他们提供只有三个内建的功能呢?
我想做相当于:
foo=$(echo "$foo"|someprogram)
Run Code Online (Sandbox Code Playgroud)
在lua中 - 也就是说,我有一个包含一堆文本的变量,我想通过一个过滤器运行它(在python中实现它).
任何提示?
补充:真的很想不使用临时文件
lua ×10
c ×3
async-await ×1
asynchronous ×1
blocking ×1
c++ ×1
coroutine ×1
getcwd ×1
ios ×1
iphone ×1
macos ×1
math ×1
objective-c ×1
pipe ×1
python ×1
trigonometry ×1
user-input ×1
wait ×1
windows-xp ×1