找回密码
 点一下
查看: 1267|回复: 5

这Jass是什么意思?

[复制链接]
发表于 2008-7-19 19:39:22 | 显示全部楼层 |阅读模式
return bug 是干啥的?

Jass:

function H2I takes handle h returns integer
return h
return 174
endfunction
这里的取得句柄是什么意思?句炳是什么意思?
上面的H2I是什么?   return 174又是为什么?为什么写174?
另外我想知道(局部变量)和(全局变量)是什么意思?你们老是说申明,搞到我不明白,是不是local real a=100 这样就等于申明了?不用去创建变量?

原来我真的是负数智商[s:202]
发表于 2008-7-19 19:44:15 | 显示全部楼层
句柄就素句柄
句柄就是邪恶的东东
你就把它当成某个东西的编号就好了

local real a=100 就是创建了个名叫a 的局部变量,类型为real,然后创建的同时给它赋值为100

全局变量和局部变量的区别在于,局部变量不能通用,在一个触发中使用后另一个触发是不能用的,而全局变量可以通用。一般用变量对话框创建的就是全局变量。那么为什么要用局部变量呢?因为它不能通用,所以假设有XXXX个触发,全部定义相同名字的局部变量,那也无所谓,因为不能通用……不能通用有很多好处,例如解决技能问题冲突。技能问题冲突有一个很重要的原因就是使用全局变量,因为谁都能把这个变量改变。而用局部变量根本不用担心这种问题。

Return BUG 是很邪恶的
好吧,举你提到的例子:
function H2I takes handle h returns integer
return h
return 174
endfunction

这个函数你不觉得有问题吗?输入进去的变量类型为handle ,怎么输出出来为integer?也就是说,你可以把一个单位送进去,然后得出一串数字……这个数字就是它的编号……WE认为这是邪恶的,所以本来是要禁止的……所以它进行了严肃地检查,防止有人干坏事……
可是它检查函数有个缺陷,就是只检查最末尾的返回值
它一看,你返回的是174这个值,哦,174是一个integer,那么符合要求
其实没看到你上面还返回了一个h……
WE的设置就是如果已经return了一个值,那么一切都结束,不往下运行
所以那个174是根本不会返回的
回复

使用道具 举报

发表于 2008-7-19 19:51:21 | 显示全部楼层
关于Return BUG,当年everguo大人有很邪恶的比喻……帖子连接如下http://www.islga.org/bbs/read.ph ... eyword=Return%20BUG
回复

使用道具 举报

 楼主| 发表于 2008-7-19 19:52:02 | 显示全部楼层
他怎么邪恶法?
Jass:
function I2T takes integer i returns timer
return i
return null
endfunction
上面的return null是什么意思?
回复

使用道具 举报

发表于 2008-7-19 19:54:03 | 显示全部楼层
可以看看1楼的回答……
还不清楚可以看2楼连接
由于everguo的比喻少儿不宜……所以不宜直接写出来
回复

使用道具 举报

发表于 2008-7-19 20:24:05 | 显示全部楼层
null是空,程序语言里都有的

这类问题,多翻翻教程就知道了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 16:54 , Processed in 0.034827 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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