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

10年積累的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有田陽免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
eval方法有一個(gè)可選的參數(shù)--binding,如果為指定的話,那么表達(dá)式的值就會(huì)是一個(gè)具體的范圍或上下文環(huán)境綁定。不過不必為這個(gè)有所意外,Rails參數(shù)binding會(huì)返回一個(gè)Binding對(duì)象的實(shí)例,可以使用binding方法返回綁定的值。下是是ruby文檔中提供的一個(gè)示例:
- def getBinding(str)
- return binding()
- end
- str = "hello"
- puts( eval( "str + ' Fred'" ) )
#=> "hello Fred" - puts( eval( "str + ' Fred'",
getBinding("bye") ) ) #=> "bye Fred" - 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)核的一個(gè)私有方法。getBinding方法通過調(diào)用binding方法返回當(dāng)前上下文環(huán)境中str的值。在***次調(diào)用 eval方 法的時(shí)候,當(dāng)前上下文環(huán)境是main對(duì)象,并且str的值就是定義的局部變量str的值。
在第二次調(diào)用eval方法是,當(dāng)前的上下文環(huán)境則是 getBinding方法內(nèi)部,局部變量str的值現(xiàn)在則為getBinding方法中參數(shù)str的值。Binding方法經(jīng)常作為eval的第二個(gè)參 數(shù),這樣eval就不會(huì)因?yàn)檎也坏阶兞慷鲥e(cuò)了。
上下文環(huán)境也可以在類中定義。在下面的例子中,可以看到,實(shí)例變量@mystr和類變量@@x根據(jù)類而不同:
- class MyClass
- @@x = " x"
- def initialize(s)
- @mystr = s
- end
- def getBinding
- return binding()
- end
- end
- class MyOtherClass
- @@x = " y"
- def initialize(s)
- @mystr = s
- end
- def getBinding
- return binding()
- end
- end
- @mystr = self.inspect
- @@x = " some other value"
- ob1 = MyClass.new("ob1 string")
- ob2 = MyClass.new("ob2 string")
- ob3 = MyOtherClass.new("ob3 string")
- puts(eval("@mystr << @@x",
ob1.getBinding)) #=> ob1 string x- puts(eval("@mystr << @@x",
ob2.getBinding)) #=> ob2 string x- puts(eval("@mystr << @@x",
ob3.getBinding)) #=> ob3 string y- puts(eval("@mystr << @@x",
binding)) #=> main some other value
Rails參數(shù)binding的概念就為大家介紹到這里了。
本文題目:Rails參數(shù)binding概念講解
當(dāng)前鏈接:http://www.5511xx.com/article/dpdejoj.html


咨詢
建站咨詢
