我开始自学Lua,基本上没有先前的编程知识.我理解类型,函数,表等的基础知识.但是在Lua.org上关注Lua tuts时,我目前正在使用"模块教程",并且在理解调用文件的正确/最简单方法时遇到了问题.互动模式.
如果我使用Notepad ++或Scite创建文件,有人可以帮我理解如何使用正确的命名法打开所述文件吗?
我同时拥有“ 5.1参考手册”和“在Lua中编程:第三版”。在我前面。阅读这些内容以及网络上的大量搜索内容,在使用string.match和时仍然让我有些困惑string.gmatch。
我知道它们都用于定位模式。
这是他们在“参考手册”中用于string.gmatch的示例:
s = "hello world from Lua"
for w in string.gmatch (s, "%a+") do
print(w)
end
Run Code Online (Sandbox Code Playgroud)
我知道这将遍历所有单词s并每行打印一个单词。
这是他们在“ Lua编程”一书中使用的示例string.match:
date = "Today is 17/7/1990"
d = string.match(date, "%d+/%d+/%d+")
print(d) -- prints 17/7/1990
Run Code Online (Sandbox Code Playgroud)
我感到困惑的是,什么时候应该适当使用一个?
例如,您有要解析的代码,其中包含数十遍相同的模式。此模式包含您需要的变量,哪个是更好的选择?下面的示例代码(x都是与其他行不同的变量数据。数据可以是您不需要关心的任何垃圾,而仅仅是杂讯):
Header contains variable (HERE) and (HERE) I want.
data data data data data data data data
<Font Typeset:xxxx Font Color:xxx Font Xpos:xxx Font Ypos:xxx Font Bold:X Font Uline:X Font Italic:X Font Text:XXXXXXXXX>
data data data …Run Code Online (Sandbox Code Playgroud) 我知道Lua的5.3版本是在不久前发布的,但是直到现在还没有理由在线访问该文档。我可能是错的,但是我不记得要记住双冒号的用法,因为::它在那里使用得非常广泛。
我看到它被视为“特殊标记”,就像其他标记一样(大于,小于星号等),但我知道这些标记的用途。
在Lua中使用它们的目的是什么?
让我先说明这是我的第一个 C 编程课程的项目。我不打算提供我的代码,因为它正在工作,但只需要帮助我在执行期间从 GDB 收到错误。
话虽如此,我项目的第一部分是编写一个程序,该程序将采用字节形式的任何文件,并定位特定长度的字符串。这有效。下一部分是我提供 (3) 编译的 C 文件,我需要使用 GDB 以及十六进制编辑器和我的程序来找出解锁程序的隐藏密码。我得到了第一个,但第二个和第三个难度越来越大,我无法弄清楚我做错了什么。
这是我的问题:
当我使用 GDB 开始运行编译文件时,我立即遇到 GDB 中闪烁的光标。我按下cntrl c以中断程序,该程序在其轨道中暂停程序。然后我输入back并获取 (9) 行的列表、它们的内存位置以及它们的方法名称。这就是我的问题所在,如果我想去main(),并且我尝试进入休息,它会告诉我No symbol table is loaded. Use the "file" command。
Starting program: [program path on university server]
^C
Program received signal SIGINT, Interrupt.
0x00110430 in __kernel_vsyscall ()
Missing separate debuginfos, use: debuginfo-install glibc-2.12-
1.132.el6_5.3.i686
(gdb) list
No symbol table is loaded. Use the "file" command.
(gdb) back
#0 0x00110430 in __kernel_vsyscall ()
#1 …Run Code Online (Sandbox Code Playgroud) -- original table
t = {
Steve = 20,
Mary = 32,
Tim = 15
}
--second table to help sort t{}
a = {}
for n in pairs(t) do
a[#a + 1] = n -- I do not completely understand this line.
-- I know [#a + 1] is the iterator, but
-- not a[#a + 1] and why equal that to "n"?
end
table.sort(a)
for _, n in ipairs(a) do -- I do not understand the point of …Run Code Online (Sandbox Code Playgroud)