二:与Lua的区别
Squirrel比Lua更好的支持OO,Squirrel可以定义类,允许类继承,能够自动执行构造(constructor函数),而Lua只能通过Table来模拟类。更关键的一点,Squirrel允许类产生实例(instance),每个实例拥有自己的存储空间,在这点上,比Lua的模拟类明显好用。
Squirrel支持在每个实例上设置一个Userpoint,这个特性非常有利与与C++ Object的接口,一个Squirrel类可以方便的作为一个C++ class的影子,我们只需要在Squirrel上实现C++ class的接口,通过Squirrel的Userpoint,即可操控这个C++ Object。
我封装了一个针对Sqlite的支持,发现使用Squirrel完成将C/C++库变成Squirrel本地支持实在是很容易的事情。在Lua中做这个事情比较麻烦,虽然在Lua中的二次开发很多,也有很完备的C/C++到Lua的绑定库,但是自己来做这个事情还是比较爽一些。