tolua中c#和lua交互过的对象都有一个ref编号, ref是int类型,ref唯一不重复,一个ref对应一个c#对象tolua中任何c#对象在lua中对应的userdata都是一个int类型的内存指针地址,通过对这个userdata设置不同的metatable来区分userdata对应的c#类型这个userdata指针指向的int内存的值等于第1条的ref值,比如有个c#对象的ref等于13
算术操作符Lua支持常规的算术操作符有:+ , - ,* / ^(指数) %(取模)关系操作符< > <= >= == ~=所有这些操作符的运算结果都是true或者false==和~=用于比较任意两个值,如果这两个值具有不同的类型,Lua就认为他们是不相等的。特别注意i:nil至于其自身相等。对于table,userdata和函数,Lua是作引用比较的。也就是说,只有当他们
学习资料Lua入门和Lua高阶章节Lua中文文档阅读笔记,只是记录了知识点和一些注意点,详细的看上面提供的学习资料链接Lua 基础数据类型nil(空)boolean(布尔) Lua 中 nil 和 false 为“假”,其它所有值均为“真”number(数字)string(字符串) 使用一对匹配的单引号。例:'hello'。使用一对匹配的双引号。例:"abclua"。字符串还可以用一种长括号(即[
function(函数)在Lua中,函数是被看作“第一类值(First class Value)”。函数可以存在变量里。function可以以匿名函数(anonymous function)的方式通过参数传递。thread(线程)在Lua中,最重要的线程是协同程序,它跟线程差不多,拥有自己独立的栈,局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。userdata(自定义类型)u
1、来自Lua 5.0Reference Manual  -The Applicatioin Program Interface -UserdataUserdata represents C values in Lua. Lua supports two types of userdata: full userdata and light userdata.A full userdata
lua userdata 就是用户自定义类型的数据 直接上例子 wss@localhost:~/lua/userdata/userdata2$ lsarray.so arr_test.lua lib.c log.lua wss@localhost:~/lua/userdata/userdata2$
原创 2022-01-11 17:45:30
630阅读
第3 章 表达式Lua中的表达式包括数字常量、字符串常量、变量、一元和二元运算符、函数调用。还可以是非传统的函数定义和表构造。3.1 算术运算符 二元运算符:+ - * / ^  (加减乘除军)一元运算符: -   (负值)这些运算符的操作数都是实数。 3.2 关系运算符<      >&nbsp
前言这篇博客,我估计写不好。一方面是内容挺绕,一方面是我没有看过书,是照葫芦画瓢写代码。前置要求:Lua调用C代码lua中表与元表Lua操作C语言用户自定义类型数据Userdata上面第三个链接的内容是,C语言自定义数据类型,在Lua中使用userdata表示。Lua调用C中的函数,操作userdata。这样写也挺好,但是分割了userdata和函数。我们知道,lua有元表。那能否将C中的函数,注
转载 4月前
150阅读
loong - Lua - 基础1、注释注释在Lua中用于添加说明和注释。单行注释以 – 开始,多行注释则使用 --[[…]]。-- 这是一条单行注释 --[[ 这是一个多行注释 可以跨越多行 ]]2、变量变量在Lua中无需显示声明类型。使用local关键字创建局部变量,全局变量直接声明。-- 局部变量 local age = 30 -- 全局变量 name = "John"3
Q:如何使用”userdata”的”metamethods”?A:我们继续来修改上一节中的例子,这次我们的目标是使用面向对象的方式调用”userdata”的方法。这个目标既可以在Lua中实现,也可以在C库中实现,我们先来看一个比较简单的方式,在Lua中实现。”mylib.c”中代码无需更改,只需要修改”a.lua”中的代码,local array = require "mylib" --[[ 这
 这一段时间看了《programming in lua》中的第28章,看一遍并不是很难,但是只是朦胧的感觉,雾里看花,水中望月。最终还是决定敲出来自己看看,练练手,结果受益不少,也遇到了一些问题,记在这里。自己做一个总结,也希望能帮助和我一样lua的初学者。1. 书上并没有写清楚对于CAPI的制作和使用内容。主要包括dll的生成,以及使用(1)dll生成。  直接用vs新建一个dll工程,要记得包
转载 6月前
191阅读
《JavaScript权威指南》笔记,修改了部分措辞和错误。 “==”:相等;“===”:严格相等。        JavaScript对象的比较是引用的比较,而不是值的比较。对象与其本身是相等的,但和其他任何对象都不想等。如果两个不同的对象具有相同数量的属性、相同的属性名和值,它们依然是不相等的。相应
函数:函数可以存储在变量中,可以作为函数的参数 可以作为返回值。 可以重新定义函数增加新的功能 ///这句话暂时没理解 是指动态时期重新定义?还可以避免运行不可靠代码创建安全运行环境而隐藏函数 lua的所有标准库都是c实现的。所以可以调用lua或c实现的函数。UserData自定义类型userdata可以将c数据置入在lua变量中。 userdata 用来描述应用程序或者使用 C 实现的库创建的新
Lua Userdata (一)通过一个简单的样例来看一下userdata的使用方法: 写一个C的Lua库,让Lua可以訪问C的数组。借助userdata来实现。 (1)VS中新建一个DLLproject,设置好lua库的包括文件夹、链接库; (2)新建一个源文件main.cpp,代码例如以下: #
转载 2017-07-04 21:02:00
206阅读
2评论
3. if 语句3.1 基本概念编程时经常需要检查一系列条件,并据此决定采取什么措施。if 语句可以让你能够检查程序当前的状态,并据此采取相应措施。3.2 条件测试      每条 if 语句的核心都是一个值为 True 或 False 的表达式,这种表达式被称为条件测试。比较两个值     = 赋值运算符,== 比较运算符car = 'bmw' print(car == 'bmw')输出:Tru
    C#有四种判断相等的方法?不少人看到这个标题,会对此感到怀疑。事实上确是如此,。Net提供了ReferenceEquals、静态Equals,具体类型的Equals以及==操作符这四个判等函数。但是这四个函数之间有细微的关系,改变其中一个函数的实现会影响到其他函数的操作结果。  首先要说的是Object.ReferenceEquals和Object.Equal
Lua C API编程上,经常有一些博客会说,必须使用luaL_newmetatable和luaL_setmetatable来给userdata加元表。还说给userdata加的元表不是普通的table。于是本着不信邪的态度,我翻了一下源码并自己尝试写了一些测试。普通的表能做userdata的元表么对于这个问题,我觉得是可以的,因为Lua中只有这一种数据结构,不存在什么特别的表。class A
转载 4月前
50阅读
最简单的构造式就是一个空构造式{},用于创建一个空table。构造式还可以用于初始化数组。例如,以下语句:days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}会将days[1]初始化为字符串“Sunday”、days[2]初始化为"Monday",以此类推。Lua
很多小伙伴再判断两个值是否相等都喜欢用===,ES6中新增了一个Object.is(val1,val2)方法是否还记得?对于Object.is来说,其运行结果在大部分情况中与===运算符相同,唯一的区别在于+0和-0被识别为不相等并且NaN与NaN等价。举个例子来说吧:+0 === -0 //true NaN === NaN // false Object.is(+0, -0) // false
转载 2023-06-09 09:32:52
83阅读
Java中判断字符串是否相等相等判断操作符`==`相等判断方法`equals()``equals()`方法原理总结 在最近的开发中,我踩到一个坑,过程是这样的。我需要在Java中判断两个字符串是否相等,按照以往的经历使用 == 双等号的操作符来判断,但是在Java中,这样写却没有实现我想要的效果。经过查阅资料后,把得到的经验分享给大家。 相等判断操作符== Java中,==相等判断符用于判断
  • 1
  • 2
  • 3
  • 4
  • 5