日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
Rails方法send調用參數

Rails中有許多方法值得我們在學習的過程中去深入探討。那么在這里我們將會為大家奉獻上有關Rails方法send的相關應用,希望對大家有所幫助。#t#

可以使用send方法來調用參數指定的方法:

  1. name = "Fred"   
  2. puts( name.send( :reverse ) ) #=> derF   
  3. puts( name.send( :upcase ) ) #=> FRED   
  4. name = "Fred" puts( name.send
    ( :reverse ) ) #=> derF puts
    ( name.send( :upcase ) ) #=> FRED 

盡管文檔規(guī)定Rails方法send必須需要一個方法符號作為參數,但是也可以直接使用一個字符串作為參數,或者,為了保持一致,也可以使用to_sym進行方法名稱進行相應的轉換后調用:

 
 
 
  1. name = MyString.new( gets() ) 
    # 輸入upcase   
  2. methodname = gets().chomp.to_sym
     #<= to_sym 并非必需,輸入upcase   
  3. puts name.send(methodname) #=>UPCASE   
  4. name = MyString.new( gets() ) 
    # 輸入upcase methodname = gets().chomp.to_sym 
    #<= to_sym 并非必需,輸入upcase 
    puts name.send(methodname) #=>UPCASE 

下面的這個例子顯示在運行狀態(tài)中通過Rails方法send動態(tài)地執(zhí)行指定的方法:

 
 
 
  1. class MyString < String   
  2. def initialize( aStr )   
  3. super aStr   
  4. end   
  5. def show   
  6. puts self   
  7. end   
  8. def rev   
  9. puts self.reverse   
  10. end   
  11. end   
  12. print("Enter your name: ") #<= Enter: Fred   
  13. name = MyString.new( gets() )   
  14. print("Enter a method name: " ) #<= Enter: rev   
  15. methodname = gets().chomp.to_sym   
  16. puts( name.send(methodname) ) #=> derF   
  17. class MyString < String def initialize( aStr )
     super aStr end def show puts self end def
     rev puts self.reverse end end print("Enter 
    your name: ") #<= Enter: Fred name = MyString
    .new( gets() ) print("Enter a method name: " )
     #<= Enter: rev methodname = gets().chomp.to_sym
     puts( name.send(methodname) ) #=> derF 

回憶一下上面使用define_method來創(chuàng)建Rails方法send的例子,傳遞了方法的名稱m,還為要創(chuàng)建的新方法傳遞了一個代碼塊@block


網站題目:Rails方法send調用參數
網站鏈接:http://m.5511xx.com/article/dpioipp.html