成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Rails參數binding概念講解

開發 開發工具
我們在應用Rails參數binding時,會返回一個叫做Binding對象的實例,我們可以使用Rails參數binding返回綁定的值。

Ruby on Rails開發框架被我們用來實現簡單的代碼編寫。在Ruby中,有許多參數值得我們去深入探討。比如本文介紹Rails參數binding的相關內容。#t#

eval方法有一個可選的參數--binding,如果為指定的話,那么表達式的值就會是一個具體的范圍或上下文環境綁定。不過不必為這個有所意外,Rails參數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參數binding是內核的一個私有方法。getBinding方法通過調用binding方法返回當前上下文環境中str的值。在***次調用 eval方 法的時候,當前上下文環境是main對象,并且str的值就是定義的局部變量str的值。

在第二次調用eval方法是,當前的上下文環境則是 getBinding方法內部,局部變量str的值現在則為getBinding方法中參數str的值。Binding方法經常作為eval的第二個參 數,這樣eval就不會因為找不到變量而出錯了。

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

  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參數binding的概念就為大家介紹到這里了。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-03 17:42:33

C++模板參數

2009-12-14 15:30:43

安裝Ruby on R

2009-12-16 15:41:10

Ruby on Rai

2009-12-16 17:37:31

Ruby on Rai

2009-12-16 16:24:00

Ruby on Rai

2009-12-17 16:16:24

Rails方法send

2009-12-17 15:42:25

Rails自定義Hel

2009-12-16 16:44:31

Ruby on Rai

2009-10-23 18:47:35

GNULinux

2010-07-02 10:04:36

2010-06-03 18:32:51

Hadoop

2011-07-21 15:28:30

java

2012-02-15 13:19:04

JavaJava Socket

2009-10-27 16:47:58

linux vi編輯器

2015-08-11 09:41:58

AndroiddataBinding

2009-10-27 09:26:26

linux系統監控命令

2010-06-10 14:56:18

UML建模語言

2010-08-25 17:05:41

DHCP服務器

2010-02-04 10:08:00

C++靜態成員函數

2013-01-10 16:12:02

Ruby on Rai漏洞
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九色网址| 一区二区精品 | 日韩中文字幕一区 | 黑人精品欧美一区二区蜜桃 | 91看片在线观看 | 天天草天天爱 | 国产高清一区二区三区 | 中文在线播放 | 国产精品99久久久精品免费观看 | 精品在线一区 | 在线视频一区二区三区 | 一级毛片在线看 | 精品一区在线免费观看 | 欧州一区二区三区 | 久久精品日产第一区二区三区 | 欧美a∨| 欧美激情精品久久久久久 | 日韩免费视频 | 日韩精品在线一区 | 国产日韩精品久久 | 欧美视频在线观看 | 玖玖国产 | 久久国产精品久久久久久 | 日本一本在线 | 欧美区在线观看 | 亚洲免费影院 | 精品二三区 | 国产九九精品视频 | 国产精品成人69xxx免费视频 | 午夜精品久久久 | av看看| 午夜看片网站 | 亚洲精品区 | 日韩午夜一区二区三区 | 伊人久久国产 | 毛片毛片毛片毛片 | 欧美女优在线观看 | 久久精品综合 | 二区国产| 国产在线精品一区二区 | 欧美激情va永久在线播放 |