重写简单的ruby函数使用块
发布时间:2020-12-17 01:20:46 所属栏目:百科 来源:网络整理
导读:我不知道正确的术语.我试图google它,找不到任何因为这个原因. 我正在编写一个Ruby库,我想重写这些函数,所以他们的工作方式如下,因为我喜欢它的可读性(在一个块内?) 我有一个这样做的功能 @dwg = Dwg.new("test.dwg")@dwg.line([0,0],[1,1,0])@dwg.save 我想
我不知道正确的术语.我试图google它,找不到任何因为这个原因.
我正在编写一个Ruby库,我想重写这些函数,所以他们的工作方式如下,因为我喜欢它的可读性(在一个块内?) 我有一个这样做的功能 @dwg = Dwg.new("test.dwg") @dwg.line([0,0],[1,1,0]) @dwg.save 我想重写它,所以它的工作原理 Dwg.new("test.dwg") do line([0,0]) save end 你可以概述我的方式吗? 解决方法
您可以定义Dwg的初始化器以获取一个块,然后使用instance_eval生成该块,如下所示:
class MyClass def initialize(name,&block) @name = name instance_eval &block end def show_name puts 'My name is ' + @name end end MyClass.new('mud') do show_name end # >> My name is mud 有关更多信息,请参阅Gregory Brown最优秀的Ruby Best Practices“创意共享许可Chapter 2”中的“界面简化框架”一节. (它的作者和发行商正在逐渐把整个事情整合起来,但是你当然可以买一个副本来支持这个工作,iPhone版是特别实惠的.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |