婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ruby 對象的初始化 方法

ruby 對象的初始化 方法

熱門標簽:漯河電銷 巫師3地圖標注魔力之所 柯城手機地圖如何做地圖標注 AI電銷機器人 線路 天津外呼系統怎么收費 征服者企業地圖標注 中牟外呼系統違法嗎 淮安自動外呼系統供應商 外呼線路從哪里出來的
 前面一節的 Fruit 類有兩個實變量,分別表述水果的類型和狀態.直到為這個類寫了一個定制的inspect方法,我們方才了解它不會對一個缺乏屬性的水果做出合理的解釋.幸運的是,Ruby提供了一種允許實變量總是被初始化的方法.


initalize方法

當Ruby創建一個新對象時,它總是會尋找一個名為 initialize 的方法并執行它.因此,我們可以簡單通過一個initialize方法向實變量中加入缺省值,這樣一來, inspect方法就有東西可說了.

ruby> class Fruit
    |   def initialize
    |     @kind = "apple"
    |     @condition = "ripe"
    |   end
    | end
   nil
ruby> f4 = Fruit.new
   "a ripe apple"  


將缺省的變為需要的

很多時候,缺省值不會有太多的意思.真的是缺省那樣的水果嗎?也許在創造水果的時候對其類型作要求是個更好的辦法.要這樣做,我們就必須給initialize 方法加入一個正式的參數.因為一些不會在此提及的原因,你向 new 傳遞的參數實際上是遞給了initialize.

ruby> class Fruit
    |   def initialize( k )
    |     @kind = k
    |     @condition = "ripe"
    |   end
    | end
   nil
ruby> f5 = Fruit.new "mango"
   "a ripe mango"
ruby> f6 = Fruit.new
ERR: (eval):1:in `initialize': wrong # of arguments(0 for 1)  


彈性的初始化

上面我們看到一旦一個參數被關聯到一個 initialize 方法上,就無法在避免錯誤產生的情況下將其省掉.如果希望考慮周全,我們可以在給了參數的情況下使用它,否則使用缺省值.

ruby> class Fruit
    |   def initialize( k="apple" )
    |     @kind = k
    |     @condition = "ripe"
    |   end
    | end
   nil
ruby> f5 = Fruit.new "mango"
   "a ripe mango"
ruby> f6 = Fruit.new
   "a ripe apple"  


可以在任何方法內使用缺省參數,而不僅僅是initialize.參數表(argument list)必須以有缺省值的參數結尾.

有時,提供多種初始化對象方法是有益的.雖然已超出本教程的范圍,但Ruby提供了對象映象(object reflection)和可變長度的參數表(variable-length argument lists),這些都有效地促進了方法重載.  
 

標簽:西雙版納 河池 內江 克拉瑪依 南昌 棗莊 甘孜 大慶

巨人網絡通訊聲明:本文標題《ruby 對象的初始化 方法》,本文關鍵詞  ruby,對象,的,初始化,方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ruby 對象的初始化 方法》相關的同類信息!
  • 本頁收集關于ruby 對象的初始化 方法的相關信息資訊供網民參考!
  • 推薦文章

    上一篇:ruby 存取器 概念

    下一篇:ruby 雜項

    主站蜘蛛池模板: 宁武县| 潜山县| 麦盖提县| 满城县| 建瓯市| 普安县| 临邑县| 伊金霍洛旗| 边坝县| 大安市| 光泽县| 鄄城县| 商水县| 印江| 潞城市| 南岸区| 都江堰市| 祁东县| 五寨县| 临海市| 虎林市| 嘉义县| 蒙山县| 桃江县| 咸宁市| 荃湾区| 云安县| 华阴市| 沿河| 池州市| 南木林县| 满城县| 太仓市| 元阳县| 高淳县| 呼和浩特市| 伊宁县| 五寨县| 资中县| 武宁县| 信丰县|