当前位置:  开发笔记 > 编程语言 > 正文

Lua比C/C++更适合的示例用法

如何解决《Lua比C/C++更适合的示例用法》经验,为你挑选了1个好方法。

我目前正在嵌入Lua并将其用作一个美化的智能配置文件.但是,我认为我缺少一些东西,因为人们对Lua的使用赞不绝口.

例如,我可以通过显示这个示例轻松解释为什么你可以使用shell脚本而不是C(诚然,boost regexp是过度杀伤):

#include  
#include  
#include 

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代码更容易.

EDIT2:

一个例子是C++和Lua中的玩具阶乘程序:

#include 

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;
}

LUA:

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示例的方式不同.



1> Reed Copsey..:

使用Lua等脚本语言还有许多其他好处.

Lua与C++的一些优点:

由于高级性质,它在开发时间方面通常较短,如您的示例所示.

它不需要重新编译来改变行为.

可以在非开发计算机上更改行为.

原型设计非常快速和简单,因为您可以在运行时调整逻辑.


...非开发人员可以修改和增强/改进功能
推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有