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

ruby 對(duì)象的初始化 方法

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


initalize方法

當(dāng)Ruby創(chuàng)建一個(gè)新對(duì)象時(shí),它總是會(huì)尋找一個(gè)名為 initialize 的方法并執(zhí)行它.因此,我們可以簡(jiǎn)單通過(guò)一個(gè)initialize方法向?qū)嵶兞恐屑尤肴笔≈?這樣一來(lái), inspect方法就有東西可說(shuō)了.

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


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

很多時(shí)候,缺省值不會(huì)有太多的意思.真的是缺省那樣的水果嗎?也許在創(chuàng)造水果的時(shí)候?qū)ζ漕?lèi)型作要求是個(gè)更好的辦法.要這樣做,我們就必須給initialize 方法加入一個(gè)正式的參數(shù).因?yàn)橐恍┎粫?huì)在此提及的原因,你向 new 傳遞的參數(shù)實(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)  


彈性的初始化

上面我們看到一旦一個(gè)參數(shù)被關(guān)聯(lián)到一個(gè) initialize 方法上,就無(wú)法在避免錯(cuò)誤產(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é)尾.

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

相關(guān)文章

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

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

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

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

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

    Ruby基礎(chǔ)知識(shí)之?dāng)?shù)據(jù)類(lèi)型

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

    redis集群搭建教程及遇到的問(wèn)題處理

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

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

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

    簡(jiǎn)單談?wù)凴uby的private和protected

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

    提升Ruby on Rails性能的幾個(gè)解決方案

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

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

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

    Ruby中的Proc類(lèi)及Proc的類(lèi)方法Proc.new的使用解析

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

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

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

最新評(píng)論

紫金县| 永吉县| 房产| 壤塘县| 曲松县| 合川市| 葫芦岛市| 简阳市| 太原市| 陇南市| 利津县| 长兴县| 满城县| 太原市| 金塔县| 塔城市| 苏尼特左旗| 宁明县| 高密市| 精河县| 汉中市| 石屏县| 尼玛县| 边坝县| 双鸭山市| 思茅市| 新绛县| 孝昌县| 即墨市| 大余县| 通河县| 吉木乃县| 冕宁县| 梅州市| 延边| 远安县| 孝义市| 光泽县| 莱阳市| 常宁市| 葫芦岛市|