Project1

标题: 在解读自带脚本,有一个关于方法参数的提问 [打印本页]

作者: 阿薯救世主    时间: 2013-12-25 14:08
标题: 在解读自带脚本,有一个关于方法参数的提问
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 = 【】 但是 []这个方法带参数,这时系统是怎么处理的呢?

作者: 国产吃货    时间: 2013-12-25 14:23
$game_actors[1]
这个还真不知道,不过往回推算一下。
$game_actors[1]并没有写成$game_actors.[](1)还是有一定道理的。
不过没有必要纠结内部如何计算的吧,知道如何用就好了。
作者: 阿薯救世主    时间: 2013-12-25 14:41
国产吃货 发表于 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]呢?

作者: 喵呜喵5    时间: 2013-12-25 15:16
前一个[]是赋值成空数组
后一个是给本类定义一个[]方法
作者: 阿薯救世主    时间: 2013-12-26 13:05
噢,我记错了不好意思,的确是[]




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1