Project1

标题: 求教初始化问题 [打印本页]

作者: kvkv97    时间: 2013-12-21 15:43
标题: 求教初始化问题
class Interpreter
  #--------------------------------------------------------------------------
  # ● 初始化标志
  #     depth : 事件的深度
  #     main  : 主标志
  #--------------------------------------------------------------------------
  def initialize(depth = 0, main = false)   
                                             ????这depth , main 两个,还没定义还是定义好了?是什么意思的?
    @depth = depth
    @Main = main
    # 深度超过 100 级
    if depth > 100
      print("调用公用事件超过了限制。")
      exit
    end
    # 清除注释器的内部状态
    clear                                  ????注释器为什么要clear?
  end
作者: fux2    时间: 2013-12-21 15:50
为避免和其他interpreter实例指向同一个@list(引用你懂的。)导致奇怪的事情发生。
作者: 恐惧剑刃    时间: 2013-12-21 17:48
depth , main是参数,传递过去的

clear是执行的方法
作者: 萧叶藏刀    时间: 2013-12-21 19:53
  1. @a = Interpreter.new(1,true)
  2. #这样子depth = 1, main = true

  3. @b = Interpreter.new
  4. #这样子depth = 0, main = false
复制代码
定义函数时就已指定且使用时可以省略的参数称为默认参数。默认参数是在临时参数后面加上符号 = 来指定的。事先设定好了默认参数,在使用函数时未指定括号 () 内实参数数值的情况下,临时参数就会自动代入默认参数数值。

def dice(n = 6)
  return rand(n) + 1
end

p dice              # 等同于 p dice(6)

上述示例中未指定参数,使用函数时会返回一个 1~6 的随机数字,然而指定参数的话,就能更改随机数字的最大值。比如,使用 dice(8) 就会返回一个 1~8 的随机数字。

多参数函数同样能够指定各个默认参数,这样使用时就可以省略。


至于clear,那是函数
在初始化下面有
  1.   #--------------------------------------------------------------------------
  2.   # ● 清除
  3.   #--------------------------------------------------------------------------
  4.   def clear
  5.     @map_id = 0                       # 启动时的地图 ID
  6.     @event_id = 0                     # 事件 ID
  7.     @message_waiting = false          # 信息结束后待机中
  8.     @move_route_waiting = false       # 移动结束后待机中
  9.     @button_input_variable_id = 0     # 输入按钮 变量 ID
  10.     @wait_count = 0                   # 窗口计数
  11.     @child_interpreter = nil          # 子实例
  12.     @branch = {}                      # 分支数据
  13.   end
复制代码





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