Ruby學習筆記0505

來源:互聯網
上載者:User

標籤:

1)有關類、對象、方法、變數等的相關知識

class Fixnum    #Ruby下的數值的類型是Fixnum或者Bignum    @@words = ["zero","one","two","three"]; #類方法    alias original_addition + #使用alias重新命名關鍵詞    def say           #向Fixnum中添加新的對象方法        p @@words[self.to_i]; #self表示對象自身    end    def +(value)        #重定義+方法        original_addition(value).succ  #succ表示下一個數字    end    class << self           #Ruby下定義類方法的常用方法,在此中的test和test1皆是類方法        def test        end        def test1        end  endend

Ruby中的

方法:類方法、對象方法、單態方法等

類中涉及的變數:全域變數($開頭)、類變數(@@開頭)、執行個體變數(@開頭)、常量(全部字母大寫)

對象:對象是new出的(new方法在Object中定義,其他類皆繼承於此),另外就如1、232、"asdf"等這樣的基礎對象

 

2)代碼塊相關知識

對帶有代碼塊方法的調用可以使用do...end或者{...}。盡量在進行迭代的時候用do... end,對代碼塊進行資源管理時用{...},兩者作用相同,但{}優先順序高於do...end

a)do...end

1 array = [1,2,3,"a",:a,:b];2 array.each do |i|                #使用do..end來指定代碼塊,進行數組內的迴圈3     puts i if i.is_a?(Numeric)4 end 

  array.each_with_index do |item,i|     #數組的each_with_index方法包括元素和下標的值
  p [item,i];
  end

b){...}

1 a=[1,34,21,2,30,563]2 p a.sort{|x,y| case 3                when x.to_s.length>y.to_s.length  then 14                when x.to_s.length<y.to_s.length  then -15                else 06              end}

 c)使用yield來替代代碼塊,即需要調用代碼塊的時候就用yield

(a)帶參數的yield

1 def one_block2     for num in 1..33     yield(num)   #調用的就是do...end間的代碼,num作為程式碼片段中的|i|參數傳入4     end5 end6 one_block do |i|7     puts "This is block #{i}. "  #   #{exp}將值插入字串中,支援所有的逸出字元,此處將數值轉變成了字串。8     end

(b)有多段代碼塊時yield如何匹配

 1 def do_something 2     yield 3 end 4  5 do_something do 6     (1..9).each {|i| print i if i<5} 7     puts  8 end 9 do_something do10     3.times { print "Hi!" }11     puts12 end

輸出
1234
Hi!Hi!Hi!

 

3)Ruby中%的用法

%Q(.....) 表示的是雙引號字串

%q(.....) 表示的是單引號字串

%w(.....) 表示其中元素被雙引號括起的數組. eg.    =>  %W(#{foo} Bar Bar\ with\ space)   #=> ["Foo", "Bar", "Bar with space"]

等,參見:

http://www.jb51.net/article/49868.htm

 

Ruby學習筆記0505

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.