Project1

标题: 一个有关initialize的问题. [打印本页]

作者: 暮铃·邪雾    时间: 2008-9-27 20:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: hitlerson    时间: 2008-9-27 20:39
有参数传过来的情况下
作者: 八云紫    时间: 2008-9-27 20:40
initialize 的参数是在 类 初始化实例的时候传给 类 的。

比如
   
   class A
     def initialize(index)
       @index = index
     end
   end

这个类在初始化的时候就应该这样:
     index = 1
     a = A.new(index)

[LINE]1,#dddddd[/LINE]


如果是这样的话:

   class A
     def initialize(index = 1)
       @index = index
     end
   end

这个类在初始化的时候:

     a = A.new

也是可以的, 这时候,index 就被默认是 1 。

也可以这样:

     a = A.new(2) [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 暮铃·邪雾    时间: 2008-9-27 20:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: 天圣的马甲    时间: 2008-9-27 20:46
简单地说,initialize下面赋予的对象有参数变量的时候需要加上(xxxx)这样的东西
例1 (无参数)
class Armor
    def initialize
      @id = 0
      @name = ""
      @icon_name = ""
      @description = ""
      @kind = 0
      @auto_state_id = 0
      @price = 0
      @pdef = 0
      @mdef = 0
      @eva = 0
      @str_plus = 0
      @dex_plus = 0
      @agi_plus = 0
      @int_plus = 0
      @guard_element_set = []
      @guard_state_set = []
    end


例2 (有参数)
  class AudioFile
    def initialize(name = "", volume = 100, pitch = 100)
      @name = name
      @volume = volume
      @pitch = pitch
    end

[LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: hitlerson    时间: 2008-9-27 20:46
index沒用定義
給@index賦值會錯誤 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 暮铃·邪雾    时间: 2008-9-27 20:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: hitlerson    时间: 2008-9-27 21:00
姐姐真好,給這么多分,下次再來回答{/hx}




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