在Ruby on Rails开发框架被我们用来实现简单的代码编写。在Ruby中,有许多参数值得我们去深入探讨。比如本文介绍Rails参数binding的相关内容。#t#
10年积累的成都网站建设、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有田阳免费网站建设让你可以放心的选择与我们合作。
eval方法有一个可选的参数--binding,如果为指定的话,那么表达式的值就会是一个具体的范围或上下文环境绑定。不过不必为这个有所意外,Rails参数binding会返回一个Binding对象的实例,可以使用binding方法返回绑定的值。下是是ruby文档中提供的一个示例:
Rails参数binding是内核的一个私有方法。getBinding方法通过调用binding方法返回当前上下文环境中str的值。在***次调用 eval方 法的时候,当前上下文环境是main对象,并且str的值就是定义的局部变量str的值。
在第二次调用eval方法是,当前的上下文环境则是 getBinding方法内部,局部变量str的值现在则为getBinding方法中参数str的值。Binding方法经常作为eval的第二个参 数,这样eval就不会因为找不到变量而出错了。
上下文环境也可以在类中定义。在下面的例子中,可以看到,实例变量@mystr和类变量@@x根据类而不同:
- 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参数binding的概念就为大家介绍到这里了。
当前文章:Rails参数binding概念讲解
浏览地址:http://www.shufengxianlan.com/qtweb/news6/20356.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联