找回密码
 点一下
查看: 1576|回复: 9

额,null有什么用?

[复制链接]
发表于 2010-6-15 01:02:32 | 显示全部楼层 |阅读模式
额,魔兽里滴null有什么用呢?

清空内存数据?

声明了变量,用了null,还是会占用内存,但不能再调用该变量了。

不知道有什么用??求解·
发表于 2010-6-15 08:12:23 | 显示全部楼层
相当于整数里的0,当你将要使用一个变量,而不知道这个变量应该是多少的时候可以先声明,使其=null,等到要使用时再将其赋值
还有一个很重要的作用就是,当你使用完一个handle类型的变量之后,设置其为null可以让其指向的对象的引用数-1,通常用来排泄
回复

使用道具 举报

 楼主| 发表于 2010-6-16 22:11:58 | 显示全部楼层
哈,这样吖··明白,谢谢呐!!

额,我用局部变量不设置=null也能通过检测···难道未声明默认值为null?
回复

使用道具 举报

发表于 2010-6-16 22:12:54 | 显示全部楼层
默认应该是未初始化
回复

使用道具 举报

 楼主| 发表于 2010-6-16 22:15:03 | 显示全部楼层
那里面滴数据是未知数?
回复

使用道具 举报

发表于 2010-6-16 22:34:12 | 显示全部楼层
未初始化的变量不可以直接使用否则会出错   -.-
回复

使用道具 举报

发表于 2010-6-16 22:43:07 | 显示全部楼层
就像指针,你声明了但没有初始化,直接使用会挂的
回复

使用道具 举报

 楼主| 发表于 2010-6-16 23:55:46 | 显示全部楼层
明白,我惯了在声明时没加null,在调用时再赋值,这就不会挂了!

但未声明滴变量,里面数据不能预知?
回复

使用道具 举报

发表于 2010-6-17 02:11:59 | 显示全部楼层
区别
[jass]
local unit u
if u==GetTriggerUnit() then  //<---使用未初始化的变量,会挂
   RemoveUnit(u)
endif
[/jass]

[jass]
local unit u=null
if u==GetTriggerUnit() then  //<---当不存在触发单位时满足条件
   RemoveUnit(u)
endif
[/jass]
回复

使用道具 举报

 楼主| 发表于 2010-6-28 15:10:55 | 显示全部楼层
嗯嗯,明白了,谢谢两位大人!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-2 20:22 , Processed in 0.029614 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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