標籤:
1、數組和範圍
2、塊
約定:當塊中只有一行簡單的代碼時使用花括弧形式;當塊是一行很長的代碼,或者有很多行時使用do..end形式。例如:
>> (1..5).each{|i| puts 2*i}(1..5).each do |i| puts 2*i puts ‘-‘end>> 3.times{puts "betelgeuse"}>> (1..5).map{|i| i**2}>> %w[a b c].map{|char| char.upcase}>> %w[A B C].map{|char| char.downcase}>> %w[A B C].map(&:downcase)>> (‘a‘..‘z‘).to_a.shuffle[0..7].join #產生隨機次層網域
3、雜湊和符號
雜湊(hash)本質上就是數組,它的索引不局限於數字。雜湊的索引可以使用任何對象。雜湊通過一對花括弧包含一些索引值對的形式表示。雜湊和數組最大的區別在於:雜湊中的元素沒有特定的順序。雜湊中沒有定義的鍵對應的值是nil
>> user={} #{}是一個空雜湊>> user["first_name"]="Amy">> user["last_name"]="Sun">> user["first_name"]=> "Amy">> user=> {"first_name"=>"Amy","last_name"=>"Sun"}>> user["e-mail"]=> nil>> user={ "first_name"=>"Amy","last_name"=>"Sun" }=>{"first_name"=>"Amy","last_name"=>"Sun"}
符號:Ruby中特有的資料類型,是沒有約束的字串
>> user={ :name=>"AmySun",:email=>"12***[email protected]**.com" }=> {:name=>"AmySun",:email=>"12***[email protected]**.com"}>> user[:name]=> "AmySun">> user[:password]=> nil>> h1={ :name=>"AmySun",:email=>"12***[email protected]**.com" }=> {:name=>"AmySun",:email=>"12***[email protected]**.com"}>> h1={ name:"AmySun",email:"12***[email protected]**.com" } #:name=>和name:的作用一樣,因此{ :name=>"AmySun" }和{ name:"AmySun" }是等效的,但是只有:name表示符號=> {:name=>"AmySun",:email=>"12***[email protected]**.com"}>> h1==h2=> true
嵌套雜湊
>> params={}=> {}>> params[:user]={ name:"AmySun",email:"12***[email protected]**.com" }=> {:name=>"AmySun",:email=>"12***[email protected]**.com"}>> params=> {:user=>{:name=>"AmySun",:email=>"12***[email protected]**.com"}}>> params[:user][:email]=> 12***[email protected]**.com
雜湊中的each方法
>> user={ success:"It worked!",danger:"It failed." }=> {:success=>"It worked!",:danger=>"It failed."}user.each do |key,value| puts "Key #{key.inspect} has value #{value.inspect}"end# 結果# Key :success has value "It worked!"# Key :failed has value "It failed."
其中inspect方法返回被調用對象的字串字面量表現形式,例如:
>> puts (1..5).to_a.inspect[1,2,3,4,5]>> puts :name,:name.inspectname:name>> puts "It worked!","It worked!".inspectIt worked!"It worked!">> p :name #等價於 ‘puts :name.inspect’:name
4、引入css說明
<%= stylesheet_link_tag ‘application‘,media:‘all‘,‘data-trubolinks-track‘=>true %>
說明:調用函數時,如果雜湊是最後一個參數,可以省略花括弧;因為data-trubolinks-track中有連字號,所以不能寫成data-trubolinks-track:true的樣式產生的html源碼如下:
<link data-trubolinks-track="true" href="/assets/application.css" media="alll" rel="stylesheet" />
Ruby on Rails Tutorial 第四章 Rails背後的Ruby 之 其他資料類型