lua 的基本数据类型和函数应用 . :符号的区别

1.Lua脚本基本的数据类型:
  • 1.数值(number) 相当于C/C++中的double
  • 2.字符串(string) 可以包含任意字符(包括零),因此并不等价于C字符串,而是其超集.
  • 3.布尔(boolean) 只有"true"和"false"两个值.(注意:逻辑运算符认为 false 和 nil 是假(false),其他为真,0 也是 true.)
  • 4.函数(function) Lua的关键概念之一.不简单等同于C的函数或函数指针.
  • 5.表(table) 异构的Hash表.Lua的关键概念之一.
  • 6.userdata 用户(非脚本用户)定义的C数据结构.脚本用户只能使用它,不能定义.
  • 7.线程(thread) Lua协作线程(coroutine),与一般操作系统的抢占式线程不一样.
  • 8.nil 代表什么也没有,可以与C的NULL类比,但它不是空指针.
2.函数的应用:

	foo = function() return x end	
	等价于 function foo() return x end
	
	function func()
		local a = 10
		local b = 20
		return a,b
	end
	lua中的函数可以返回多个值
	local a, b = func()
	print(a,b)


3. “.”和“:”的区别:

	--声明一个table存储Box的属性:
	local Box= {
				width  = 0,
				height = 0,	
				}
	--定义一个函数方法一:
	function Box.FuncPrint(Box,x,y)
		Box.width  = x
		Box.height = y
		print(Box.width, Box.height)
	end
	--方法二:
	function Box:FuncPrint(x, y)
		Box.width  = x
		Box.height = y
		print(Box.width, Box.height)
	end
	--调用方法一:
	Box.FuncPrint(Box,12,15)
	--调用方法二:
	Box:FuncPrint(10,20)
	
	当然,如果函数内部没有用到对象Box进行一些赋值,改变的操作。如:
	function Box.FuncPrint(Box,x,y)
		print(x, y)
	end
	Box.FuncPrint(Box,12,15)
	第一个参数Box省略不写也是不会报错的。(需要注意的是:函数声明的时候,和函数调用的时候,对于第一个参数对象BOX尽量配套使用。避免不必要的麻烦。lua中用":"很好的解决了这个问题,Box:FuncPrint(x, y)默认传递了自己作为第一个参数。让我们可以很方便的进行偷懒了!)

 

总结:"." 和 ":"引用过程中,最直接的区别就是引用":"号的时候,默认传递了自身对象作为该函数的第一个参数。cocos2d-x+lua开发过程中,传递的相当class中的self,类似于C++中的this指针

借鉴博客:1. 数据基本类型
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值