av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Rails參數(shù)binding概念講解

在Ruby on Rails開發(fā)框架被我們用來實現(xiàn)簡單的代碼編寫。在Ruby中,有許多參數(shù)值得我們?nèi)ド钊胩接?。比如本文介紹Rails參數(shù)binding的相關內(nèi)容。#t#

10年積累的成都網(wǎng)站建設、成都網(wǎng)站設計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有田陽免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

eval方法有一個可選的參數(shù)--binding,如果為指定的話,那么表達式的值就會是一個具體的范圍或上下文環(huán)境綁定。不過不必為這個有所意外,Rails參數(shù)binding會返回一個Binding對象的實例,可以使用binding方法返回綁定的值。下是是ruby文檔中提供的一個示例:

  1. def getBinding(str)   
  2. return binding()   
  3. end   
  4. str = "hello"   
  5. puts( eval( "str + ' Fred'" ) ) 
    #=> "hello Fred"   
  6. puts( eval( "str + ' Fred'", 
    getBinding("bye") ) ) #=> "bye Fred"   
  7. def getBinding(str) return binding() 
    end str = "hello" puts( eval( "str + ' 
    Fred'" ) ) #=> "hello Fred" puts
    ( eval( "str + ' Fred'", getBinding
    ("bye") ) ) #=> "bye Fred"  

 

Rails參數(shù)binding是內(nèi)核的一個私有方法。getBinding方法通過調(diào)用binding方法返回當前上下文環(huán)境中str的值。在***次調(diào)用 eval方 法的時候,當前上下文環(huán)境是main對象,并且str的值就是定義的局部變量str的值。

在第二次調(diào)用eval方法是,當前的上下文環(huán)境則是 getBinding方法內(nèi)部,局部變量str的值現(xiàn)在則為getBinding方法中參數(shù)str的值。Binding方法經(jīng)常作為eval的第二個參 數(shù),這樣eval就不會因為找不到變量而出錯了。

上下文環(huán)境也可以在類中定義。在下面的例子中,可以看到,實例變量@mystr和類變量@@x根據(jù)類而不同:

 
 
 
  1. class MyClass   
  2. @@x = " x"   
  3. def initialize(s)   
  4. @mystr = s   
  5. end   
  6. def getBinding   
  7. return binding()   
  8. end   
  9. end   
  10. class MyOtherClass   
  11. @@x = " y"   
  12. def initialize(s)   
  13. @mystr = s   
  14. end   
  15. def getBinding   
  16. return binding()   
  17. end   
  18. end   
  19. @mystr = self.inspect   
  20. @@x = " some other value"   
  21. ob1 = MyClass.new("ob1 string")   
  22. ob2 = MyClass.new("ob2 string")   
  23. ob3 = MyOtherClass.new("ob3 string")   
  24. puts(eval("@mystr << @@x", 
    ob1.getBinding)) #=> ob1 string x   
  25. puts(eval("@mystr << @@x", 
    ob2.getBinding)) #=> ob2 string x   
  26. puts(eval("@mystr << @@x", 
    ob3.getBinding)) #=> ob3 string y   
  27. puts(eval("@mystr << @@x", 
    binding)) #=> main some other value  

Rails參數(shù)binding的概念就為大家介紹到這里了。


當前名稱:Rails參數(shù)binding概念講解
網(wǎng)址分享:http://uogjgqi.cn/article/dpdejoj.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流