我目前正在嵌入 Lua 并将其用作美化的智能配置文件。然而,我认为我错过了一些东西,因为人们对 Lua 的使用赞不绝口。
例如,通过展示这个例子,我可以很容易地解释为什么你可以使用 shell 脚本而不是 C(诚然,boost regexp 是多余的):
#include <dirent.h>
#include <stdio.h>
#include <boost/regex.hpp>
int main(int argc, char * argv[]) {
DIR *d;
struct dirent *dir;
boost::regex re(".*\\.cpp$");
if (argc==2) d = opendir(argv[1]); else d = opendir(".");
if (d) {
while ((dir = readdir(d)) != NULL) {
if (boost::regex_match(dir->d_name, re)) printf("%s\n", dir->d_name);
}
closedir(d);
}
return(0);
并将其与:
for foo in *.cpp; do echo $foo; done;
您可以在 Lua 中提供任何可以让我“点击”的示例吗?
编辑:也许我的问题是我对 Lua 的了解还不够好,还不能流利地使用它,因为我发现编写 C 代码更容易。
编辑2:
一个例子是 C++ 和 Lua 中的一个玩具阶乘程序:
#include <iostream>
int fact (int n){
if (n==0) return 1; else
return (n*fact(n-1));
}
int main (){
int input;
using namespace std;
cout << "Enter a number: " ;
cin >> input;
cout << "factorial: " << fact(input) << endl;
return 0;
}
卢阿:
function fact (n)
if n==0 then
return 1
else
return n * (fact(n-1))
end
end
print ("enter a number")
a = io.read("*number")
print ("Factorial: ",fact(a))
在这里,这些程序看起来很相似,但在 include、namespace 和 main() 声明中显然有些杂乱无章,您可以摆脱它。还要删除变量声明和强类型。
现在人们是说这是一个更大的程序的优势,还是有更多的优势?这与 bash 示例不同。