中文编程入门(Lua5.4中文版)第某章 本身 .的引用和:的引用, 熊宝宝的食物

有文件如:大熊.lua

局部 大熊 = {名字="大熊"}

函数 大熊:给( ... )
    本身.熊妈 = "蜂蜜"
    谁 = ... 或 "没谁"
    输出(谁.名字, "给馋哭了.")
结束

返回 大熊

 

有文件如:小熊.lua

局部 大熊 = 要求("大熊")

局部 小熊={}
函数 小熊:给( ... )
 	大熊:给(本身)
 	输出("熊爸给本身的",本身.熊爸)
 	输出("熊妈给本身的",本身.熊妈)

    输出("熊爸给小熊的",小熊.熊爸)
    输出("熊妈给小熊的",小熊.熊妈)
    
	输出("熊爸给大熊的",大熊.熊爸)
	输出("熊妈给大熊的",大熊.熊妈)
结束

小熊.熊爸 = "苹果"
输出("小熊得到的")
小熊:给()

返回 小熊

:的引用方式, 传递的是:前面的值及()里的值, 所以执行了大熊:给(本身), 先给到的还是大熊, 

小熊只能作为大熊的给()函数里的参数. 即..., 即谁, 取谁的名字,即"小熊",然后:"小熊    给馋哭了."

执行后

小熊得到的
小熊	给馋哭了.
熊爸给本身的	苹果
熊妈给本身的	nil
熊爸给小熊的	苹果
熊妈给小熊的	nil
熊爸给大熊的	nil
熊妈给大熊的	蜂蜜

 

.的引用方式, 传递的是()里的值, 所以只要改成了大熊.给(本身), 先给到的就是本身, 也就是小熊了.

 	--大熊:给(本身)改成
    大熊.给(本身)

本身的用法, 要通过:来指明, 比如, 小熊: 给()的执行, 就可以在给()执行期间, 用本身来代指小熊.

而第一次里, 大熊:给(), 执行时, 引用的大熊的给()函数时, 通过:号指明了对象就是大熊.  小熊只能作为大熊的给()函数里的参数.

而更改后, 大熊.给(小熊), 执行时, 引用的大熊的给()函数时, 因没有:指明对象, 就变成是()号内的对象, 即小熊.  即在大熊.lua里, 本身用来代指小熊了.所以蜂蜜就给到小熊了.

小熊得到的
nil	给馋哭了.
熊爸给本身的	苹果
熊妈给本身的	蜂蜜
熊爸给小熊的	苹果
熊妈给小熊的	蜂蜜
熊爸给大熊的	nil
熊妈给大熊的	nil

这时大熊的给()函数里,没有别的参数.  如需要别的参数, 可以写成, 大熊.给(小熊, 参数1)这样传递.

 	--大熊:给(本身)改成
    大熊.给(本身,大熊)

执行后

小熊得到的
大熊	给馋哭了.
熊爸给本身的	苹果
熊妈给本身的	蜂蜜
熊爸给小熊的	苹果
熊妈给小熊的	蜂蜜
熊爸给大熊的	nil
熊妈给大熊的	nil

 

你可能感兴趣的:(编程语言,中文编程,#,lua)