gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 22:34:56 25 4
gpt4 key购买 nike

我目前正在嵌入 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 代码更容易。

EDIT2:

一个例子是 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))

这里的程序看起来很相似,但显然包含、命名空间和 main() 声明中有一些你可以摆脱的杂乱无章的东西。同时删除变量声明和强类型。

现在人们是说这是加起来比更大程序的优势,还是还有更多?这与 bash 示例不同。

最佳答案

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

Lua 与 C++ 相比的几个优势:

  • 由于高级特性,开发时间通常更短,就像您的示例一样。
  • 它不需要重新编译来改变行为。
  • 可以在非开发机器上更改行为。
  • 原型(prototype)制作非常快速和简单,因为您可以在运行时调整逻辑。

关于c++ - Lua 比 C/C++ 更适合的示例用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/940896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com