加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 a554187203 于 2013-8-24 12:27 编辑
在阅读脚本的时候,看到了这样的一句话
这样是数组吗?这个nil的添加有什么特别的意义吗
我把它认为是数组了,不过接下来的让我疑惑了
for i in 1..100 @pictures.push(Game_Picture.new(i)) end
for i in 1..100
@pictures.push(Game_Picture.new(i))
end
.push的功效是将括号内的内容依次代入数组的末尾
但是这个Game_Picture.new(i)让人不解
请看Game_Picture类的代码
def initialize(number) [url=home.php?mod=space&uid=27178]@Number[/url] = number @name = "" [url=home.php?mod=space&uid=27559]@origin[/url] = 0 @x = 0.0 @y = 0.0 @zoom_x = 100.0 @zoom_y = 100.0 [url=home.php?mod=space&uid=316553]@opacity[/url] = 255.0 @blend_type = 1 @duration = 0 @target_x = @x @target_y = @y @target_zoom_x = @zoom_x @target_zoom_y = @zoom_y @target_opacity = @opacity @tone = Tone.new(0, 0, 0, 0) @tone_target = Tone.new(0, 0, 0, 0) @tone_duration = 0 [url=home.php?mod=space&uid=124954]@Angle[/url] = 0 @rotate_speed = 0 end
def initialize(number)
[url=home.php?mod=space&uid=27178]@Number[/url] = number
@name = ""
[url=home.php?mod=space&uid=27559]@origin[/url] = 0
@x = 0.0
@y = 0.0
@zoom_x = 100.0
@zoom_y = 100.0
[url=home.php?mod=space&uid=316553]@opacity[/url] = 255.0
@blend_type = 1
@duration = 0
@target_x = @x
@target_y = @y
@target_zoom_x = @zoom_x
@target_zoom_y = @zoom_y
@target_opacity = @opacity
@tone = Tone.new(0, 0, 0, 0)
@tone_target = Tone.new(0, 0, 0, 0)
@tone_duration = 0
[url=home.php?mod=space&uid=124954]@Angle[/url] = 0
@rotate_speed = 0
end
这串代码好像并没有返还一个值啊,那么@pictures.push(Game_Picture.new(i))这句话好像就是不通逻辑?
自己解决了,nil是数组[0]的内容,并没有什么其他意义,只是为了数组能够从1开始而已
至于没有返回值,是直接将实例保存在了数组中 (学了c的娃苦啊,对象是啥啊,好好的一个函数没有返回值干嘛啊)
为了证明自己的想法写了如下脚本
class T def initialize(y) p y end def test(y) p y end end a = [nil] for i in 1..3 a.push(T.new(i)) end a[1].test (6) a[0].test (5)
class T
def initialize(y)
p y
end
def test(y)
p y
end
end
a = [nil]
for i in 1..3
a.push(T.new(i))
end
a[1].test (6)
a[0].test (5)
依次出现
1 2 3 6 出错
说明我的想法没错~ |