主题:  关于变量

shuihan

职务:普通成员
等级:1
金币:0.0
发贴:100
注册:2001/10/18 8:49:46
#12001/11/4 19:59:17
请问变量是不是可以不要经过初始化,请看这段:
on (keyPress "") { //当按下键盘按键 Left
  co = getProperty("/mc", _x); //取得场景下mc影片剪辑的x坐标值,并存入co变量中
  co = co-5; //co变量的值减5 (mc向左移)
  setProperty ("/mc", _x, co); //将场景下影片剪辑mc的x坐标值设定为co变量的值
}
其中co为一个存储变量,在代码中根本没有co=0等函数,为什么有的代码要对变量设置一下初始值,有的又不要呢?

编辑历史:[这消息被爱老虎油编辑过(编辑时间2001-11-04 21:18:32)]


5D荣誉斑竹

职务:普通成员
等级:1
金币:10.0
发贴:265
注册:2000/12/16 0:32:09
#22001/11/4 20:47:24
shuihan在上个帖子中说
引用:
请问变量是不是可以不要经过初始化,请看这段:
on (keyPress "") { //当按下键盘按键 Left
  co = getProperty("/mc", _x); //取得场景下mc影片剪辑的x坐标值,并存入co变量中
  co = co-5; //co变量的值减5 (mc向左移)
  setProperty ("/mc", _x, co); //将场景下影片剪辑mc的x坐标值设定为co变量的值
}
其中co为一个存储变量,在代码中根本没有co=0等函数,为什么有的代码要对变量设置一下初始值,有的又不要呢?




AS的语法不要求对变量初始化;
是否需要设初值,完全视程序的要求与否而定。



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
#32001/11/5 10:47:00
如果是在第一次引用时就要参与表达式计算,flash就需要知道该变量的值,这时,要对变量赋初值;否则,该值为null,或出错。

如果用var 作前缀进行定义,则该变量的生存期为距离定义语句最近的花括号({})括住的范围,这一点和C类似。



shuihan

职务:普通成员
等级:1
金币:0.0
发贴:100
注册:2001/10/18 8:49:46
#42001/11/5 11:20:32
令狐瓜子在上个帖子中说
引用:

是否需要设初值,完全视程序的要求与否而定。

那么什么时侯需要设初始值呢?



椰兔

职务:普通成员
等级:1
金币:0.0
发贴:127
注册:2001/11/3 12:06:51
#52001/11/6 15:31:50
没有什么语言需要对变量设初值,每个变量所得到的第一个值都可以叫初值.你们所说的设初值大概是声明变量的意思.在AS中不需要对变量进行声明.这是我的理解.



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
#62001/11/6 15:42:26
To shuihan:
引用:

如果是在第一次引用时就要参与表达式计算,flash就需要知道该变量的值。


To 椰兔:
声明和赋初值不是一个概念。很多高级语言都要求变量在使用前声明,声明中可以赋初值,也可以仅仅只是声明。

个人认为,声明是一种严谨的体现,也是个好习惯。对编写者来说,它比较实的功能就是防止将变量名写错。

actionscript和javascript一样,只是一种脚本语言,它们都无须事先声明变量。有时候,赋初值则是必须的。