最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ruby 對象的初始化 方法

 更新時間:2007年11月24日 14:23:58   作者:  
 前面一節(jié)的 Fruit 類有兩個實變量,分別表述水果的類型和狀態(tài).直到為這個類寫了一個定制的inspect方法,我們方才了解它不會對一個缺乏屬性的水果做出合理的解釋.幸運的是,Ruby提供了一種允許實變量總是被初始化的方法.


initalize方法

當Ruby創(chuàng)建一個新對象時,它總是會尋找一個名為 initialize 的方法并執(zhí)行它.因此,我們可以簡單通過一個initialize方法向?qū)嵶兞恐屑尤肴笔≈?這樣一來, inspect方法就有東西可說了.

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


將缺省的變?yōu)樾枰?

很多時候,缺省值不會有太多的意思.真的是缺省那樣的水果嗎?也許在創(chuàng)造水果的時候?qū)ζ漕愋妥饕笫莻€更好的辦法.要這樣做,我們就必須給initialize 方法加入一個正式的參數(shù).因為一些不會在此提及的原因,你向 new 傳遞的參數(shù)實際上是遞給了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)  


彈性的初始化

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

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"  


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

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

相關(guān)文章

  • Ruby中操作字符串的一些基本方法

    Ruby中操作字符串的一些基本方法

    這篇文章主要介紹了Ruby中操作字符串的一些基本方法,包括對字符串的壓縮和解壓縮等處理,需要的朋友可以參考下
    2015-05-05
  • Rails應(yīng)用程序中同時修改操作沖突問題的解決方案

    Rails應(yīng)用程序中同時修改操作沖突問題的解決方案

    這篇文章主要介紹了Rails應(yīng)用程序中同時修改操作沖突問題的解決方案,本文講解使用Rails 的 樂觀鎖解決這個問題并給出了代碼救命,需要的朋友可以參考下
    2015-03-03
  • Ruby基礎(chǔ)知識之數(shù)據(jù)類型

    Ruby基礎(chǔ)知識之數(shù)據(jù)類型

    這篇文章主要介紹了Ruby基礎(chǔ)知識之數(shù)據(jù)類型,本文講解了數(shù)值類型、字符串類型、字符類型、哈希類型、范圍類型、對象標識、對象的類、類型等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • redis集群搭建教程及遇到的問題處理

    redis集群搭建教程及遇到的問題處理

    本文主要給大家講訴的是如何搭建redis集群的方法以及在此過程中需要注意的問題,非常不錯,推薦給大家,有需要的小伙伴可以來參考下
    2017-09-09
  • 以MVC的思維方式來理解Ruby on Rails框架的設(shè)計結(jié)構(gòu)

    以MVC的思維方式來理解Ruby on Rails框架的設(shè)計結(jié)構(gòu)

    Ruby on Rails是Ruby世界中Web開發(fā)框架的代名詞,人氣相當之高,本文就帶大家以MVC的思維方式來理解Ruby on Rails框架的設(shè)計結(jié)構(gòu),需要的朋友可以參考下
    2016-05-05
  • 簡單談?wù)凴uby的private和protected

    簡單談?wù)凴uby的private和protected

    Ruby類下對訪問控制的限制也是用public,protected和private來做的。雖然用的是和C++和Java相同的名字,但是Ruby下的protected和private定義還是有所不同的。
    2016-02-02
  • 提升Ruby on Rails性能的幾個解決方案

    提升Ruby on Rails性能的幾個解決方案

    這篇文章主要介紹了提升Ruby on Rails性能的幾個解決方案,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • Ruby簡明教程之方法(Method)介紹

    Ruby簡明教程之方法(Method)介紹

    這篇文章主要介紹了Ruby簡明教程之方法(Method)介紹,ruby的方法分為實例方法、類方法、函數(shù)方法等,本文分別做了講解,需要的朋友可以參考下
    2014-06-06
  • Ruby中的Proc類及Proc的類方法Proc.new的使用解析

    Ruby中的Proc類及Proc的類方法Proc.new的使用解析

    用Proc類可以用Proc.new來創(chuàng)建一個Proc類,進而來操作塊,這里我們就來進行Ruby中的Proc類及Proc的類方法Proc.new的使用解析.
    2016-05-05
  • CentOS7下搭建ruby on rails開發(fā)環(huán)境

    CentOS7下搭建ruby on rails開發(fā)環(huán)境

    聽說rails是一個比較流行的快速開發(fā)框架,對于我這個web不熟悉的人來說,那是極好的!可以快速上手,又能真正了解服務(wù)器端的各種,所以rails搞起來。不過一個完整的開發(fā)環(huán)境搭建過程完成后,真的只能用各種坑來形容~
    2016-02-02

最新評論

合山市| 林甸县| 景洪市| 阜城县| 宜兰县| 壤塘县| 惠水县| 海阳市| 胶州市| 松阳县| 广丰县| 五峰| 萍乡市| 铁岭县| 淮滨县| 长白| 成安县| 义乌市| 长岭县| 平顶山市| 那坡县| 西乡县| 石家庄市| 吕梁市| 台北县| 沾益县| 工布江达县| 双桥区| 丹东市| 饶河县| 许昌县| 徐州市| 江孜县| 武隆县| 南昌市| 来凤县| 桐庐县| 汝阳县| 永吉县| 通化县| 南溪县|