|
发表于 2009-3-31 18:00:45
|
显示全部楼层
很明显,两个都是错的...
橙子当时没有提及类型转换的情况,所以有些东西你可能不知道.
[jass]
globals
integer I
handle H
endglobals
function Func01 takes integer i returns integer
local handle H=CreateTimer()
return i
endfunction
function Func02 takes nothing returns integer
local integer I
local integer i
local handle H=CreateTimer()
return i
endfunction
function Func03 takes integer i, integert I returns integer
return i
endfunction
function Func04 takes integer h, handle H returns integer
return h
endfunction
[/jass]
调用Func01会返回那个传入的i值;
调用Func02会返回那个Timer的Handle值;
调用Func03会返回I的值(这就是橙子得出的结果);
Func04加入地图中会进不去游戏,意味着只用一个全局变量来转换数据是不可能的.
看你写的函数,说明你对Union Bug还不是很熟悉.你这样写是先对H变量赋值,再创建h变量,这里integer类型的h是不会存储有Handle类型的H的值的. |
|