ruby-on-rails – 为什么学习Ruby中的元编程和特征类很重要?
我目前正在尝试使用
Ruby和Rails,我在关于元编程的教程和书籍中有几个部分.许多人提到它是Ruby的重要组成部分,但它们并没有真正详细说明.这就好像元编程是Ruby程序员的最后边界.来自.NET背景我很难理解它为什么如此有用.
>使用元编程有什么好处? 解决方法
>使用元编程有什么好处?
您可以创建比没有它更具表现力的API(例如,ActiveRecord使用元编程来根据表的列名定义访问器方法,因此您可以编写像person.age之类的东西而不是像person.read_attribute(“age”)这样的东西,其中person是一个活动的记录对象,人员表有一个名为age的列,你可以用比你原来少得多的代码完成一些事情. 术语“本征类”和“单一类”在ruby的上下文中可互换使用. 在您需要大量锅炉板代码或创建DSL的情况下. 用例1的示例: 而不是写这样的锅炉板代码: class Foo def bar @bar end def bar=(b) @bar = b end def baz @baz end def baz=(b) @baz = b end end 您可以使用元编程方法attr_accessor编写这么短的代码,它会根据您给出的参数自动定义具有名称的getter和setter方法: class Foo attr_accessor :foo,:bar end 如果attr_accessor在标准库中不存在,你可以像这样自己定义它(让你知道ruby中的元编程是什么样的): class Module def attr_accessor(*variable_names) variable_names.each do |variable_name| define_method( variable_name ) do instance_variable_get( "@#{ variable_name }" ) end define_method( "#{ variable_name }=" ) do |value| instance_variable_set( "@#{ variable_name }",value) end end end 结束 没有. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |