找回密码
 点一下
查看: 2822|回复: 6

return bug的一些问题

[复制链接]
发表于 2007-3-26 15:15:43 | 显示全部楼层 |阅读模式
return bug一般是不是用来把一些变量转换为integer  然后存到游戏缓存中 需要的时候再提取出来 这样就能当全局变量用了

那么 为什么费这么大劲不用全局变量而去用缓存来存储数据 同样占用内存空间  为什么用缓存更好呢?  
另外 常用来保存哪些变量呢?
除了这个功能  return bug还有什么功能呢?
谢谢回答
发表于 2007-3-27 08:04:39 | 显示全部楼层
一般来说,需要用缓存去储存的数据往往不是全局的,而是区域性使用的

因为使用一些方法调用的函数不能传递参数,比如TimerStart()或ForGroup()

如果你需要同时运行多个timer,使用全局可能会相互干扰造成混乱,而又不能向用timer调用的函数传递参数作局域变量

这时就可以使用以timer的handle值作索引,用缓存储存这些数据来解决问题了

当然还有其他的办法,但到目前,缓存+return bug依然是解决这类问题通用性最高的办法

除此之外,return bug还有很多用处。事实上,这个bug解除了jass变量的很多限制,扩大了设计者的发挥空间,这才是return bug的价值所在。

如果你的思路不开阔,那么这个bug也许毫无用处。这个bug触动的是那些善于扩展自己思路的家伙,你的心有多大,这种东西的价值就有多大……
回复

使用道具 举报

发表于 2007-3-27 10:33:21 | 显示全部楼层
所谓return bug~~就是取对象指针的方法~~说它是把一个变量转化为整型并不确切~~虽说也可以这样用~~


其实用变量保存比用缓存效率高~~但是缓存的好处是可以在运行时生成一些有意义的缓存名~~而变量就不行~~只能用Unit[1]~~Unit[2]~~这种数组~~无法直观的表示出里面存的是啥~~
回复

使用道具 举报

 楼主| 发表于 2007-3-27 10:44:04 | 显示全部楼层
谢谢大家
回复

使用道具 举报

发表于 2007-5-11 23:01:45 | 显示全部楼层
  1. function  GetUnitU takes nothing returns unit
  2.           unit u   
  3.           //...........................
  4. returns  u
  5. function GetUnitI takes nothing returns integer
  6.          integer u
  7.         // .................
  8. return u
  9. return null
复制代码
同样作用的函数,一个生成了一个unit,一个没有生成,
所以returns bug可以在处理内存泻露方面好一点.
回复

使用道具 举报

发表于 2007-10-12 16:52:51 | 显示全部楼层
需要存储的内容如果不多,当然是用全局变量数组好了,全局变量数组的运行速度比缓存快。问题在于,当内容太多的时候,会搞得很混乱,毕竟人脑的功能是有限的。
回复

使用道具 举报

发表于 2007-10-12 19:27:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-24 18:20 , Processed in 0.032058 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表