查看: 1922|回复: 4

[已经解决] 在解读自带脚本,有一个关于方法参数的提问

[复制链接]
梦石
0
星屑
50
在线时间
33 小时
注册时间
2011-6-27
回帖
38
发表于 2013-12-25 14:08:56 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
class Game_Actors
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    @data = []
  end
  #--------------------------------------------------------------------------
  # ● アクターの取得
  #--------------------------------------------------------------------------
  def [](actor_id)
    return nil unless $data_actors[actor_id]
    @data[actor_id] ||= Game_Actor.new(actor_id)
  end
end

其中@data = 【】 但是 []这个方法带参数,这时系统是怎么处理的呢?
梦石
0
星屑
55
在线时间
218 小时
注册时间
2013-12-17
回帖
368
发表于 2013-12-25 14:23:49 | 显示全部楼层
$game_actors[1]
这个还真不知道,不过往回推算一下。
$game_actors[1]并没有写成$game_actors.[](1)还是有一定道理的。
不过没有必要纠结内部如何计算的吧,知道如何用就好了。

点评

下面那个掉了一个s  发表于 2013-12-27 02:47
$game_actor.[](1)也合法,互相等价  发表于 2013-12-27 02:47
RM脚本定制/修改/整合 群:143356012(入群注明来意)
回复

使用道具 举报

梦石
0
星屑
50
在线时间
33 小时
注册时间
2011-6-27
回帖
38
 楼主| 发表于 2013-12-25 14:41:18 | 显示全部楼层
国产吃货 发表于 2013-12-25 14:23
$game_actors[1]
这个还真不知道,不过往回推算一下。
$game_actors[1]并没有写成$game_actors.[](1)还是有 ...

我想写一个自己想要实现的想法所以必须要了解一点东西。

我知道因为$game_actors在初始化的时候是被返回一个数组(@data),所以可以[1]这样写吧?但是我不知道,在init方法中它调用了[]方法但是不带参数,是不是意味着让这个方法用初始化参数来运行呢?

由于 def [](actor_id)没定义初始化参数是不是就意味着初始化参数是nil呢?
return nil unless $data_actors[actor_id]是不是意味着return nil unless $data_actors[nil]呢?

点评

要赋值一个数组难道是a={1,2,3}不是a=[1,2,3]?  发表于 2013-12-26 12:39
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-12-25 15:16:41 | 显示全部楼层
前一个[]是赋值成空数组
后一个是给本类定义一个[]方法

点评

噢,我记错了不好意思,的确是[]  发表于 2013-12-26 13:05
赋值成空数组不应该是{}吗?  发表于 2013-12-26 12:27
回复

使用道具 举报

梦石
0
星屑
50
在线时间
33 小时
注册时间
2011-6-27
回帖
38
 楼主| 发表于 2013-12-26 13:05:29 | 显示全部楼层
噢,我记错了不好意思,的确是[]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部