`

偶然搜到DHH给Matz的一封信,关于undef_method和remove_method

    博客分类:
  • Ruby
阅读更多
Hi,

In message "[ruby-talk:01169] undef_method vs. remove_method"
    on 00/01/23, Dave Thomas <Dave / thomases.com> writes:

|OK - I guess I need to understand the source a bit better. What's the
|difference between Module.undef_method and Module.remove_method?

`undef_method' makes a method undefined, `remove_method' removes it.
Ok, here's the example,

  class Foo
    def foo
      print "foo at Foo\n"
    end
    def bar
      print "bar at Foo\n"
    end
  end
  class Bar<Foo
    def foo
      print "foo at Bar\n"
    end
    def bar
      print "bar at Bar\n"
    end

    remove_method :foo  # removes `foo at Bar'
    undef_method :bar   # undefine `bar' for class Bar

  end

  bar = Bar.new
  bar.foo       # calls foo at Foo
  bar.bar       # error; whole `bar' made undefined
评论

相关推荐

    lis3dhh_STdC.zip

    标题中的"lis3dhh_STdC.zip"很可能是指一个包含有关STMicroelectronics(意法半导体)的 lis3dhh传感器驱动或数据手册的压缩文件。这个传感器可能是一款三轴加速度计,常用于移动设备、物联网(IoT)装置、健康与健身...

    DHH-Revamped

    【标题】"DHH-Revamped" 暗示我们正在讨论一个可能已经过改进或更新的项目,可能是一个软件、框架或者代码库,由知名开发者 David Heinemeier Hansson(通常简称为DHH)创建或参与。DHH 最为人所知的是他创立了Ruby ...

    DS-DHH800_1-CN

    HART(Highway Addressable Remote Transducer)协议是一种工业自动化通讯协议,它允许数字信号和模拟信号共存在4-20mA电流环路中,从而实现远程诊断和配置功能。从提供的信息中可以推断DS-DHH800_1-CN支持HART通讯...

    Turbulence2D_1.2.5

    【Turbulence2D_1.2.5】是一个针对二维湍流模拟的软件或库,主要用于数值模拟和分析流动中的湍流现象。在工程、物理、气象学等多个领域,理解并预测湍流是至关重要的,因为它对流体动力学的行为有着深远的影响。...

    视频图matlab代码-DHH:Caffe实现我们的TIP2019作品DHH,题为“用于面部视频检索的深度异构哈希”

    视频图matlab代码DHH ...在工具中添加extract_features_binary,该工具将训练模型的一层的输出提取到二进制文件中 修改后的db,db_leveldb,db_lmdb,data_reader,data_layer,它们在训练和测试期间处理lmdb格

    LIS3DH_datasheet三轴加速度

    LIS3DH是一款高性能、超低功耗的三轴线性加速度计,属于“nano”家族产品之一,具备数字I2C/SPI串行接口标准输出功能。这款设备在保持高性能的同时,还实现了超低功耗的操作模式,支持多种智能嵌入式功能。 #### 二...

    dhh

    【标题】"dhh"可能是指David Heinemeier Hansson的缩写,他是一位著名程序员,创建了Ruby on Rails框架。然而,这个标题没有提供足够的信息来深入讨论具体的知识点,所以我们需要根据其他线索来推测。 【描述】"dhh...

    实验18 IIC实验_STM32F103_i2c_

    实验18:STM32F103的IIC(I²C)实验是嵌入式系统开发中的一个重要环节,I²C(Inter-Integrated Circuit)是一种多主机、双向二线制总线,由飞利浦(现为NXP)公司开发,用于连接微控制器和外围设备,如传感器、...

    STMems_Standard_C_drivers-master.zip

    lis3dhh lis3dsh lis3mdl lps22hb lps22hh lps25hb lps27hhw lps33hw lps33k lps33w lsm303agr lsm303ah lsm6ds3 lsm6ds3tr lsm6dsl lsm6dsm lsm6dso32 lsm6ds lsm6dsox lsm6dsr lsm6dsrx lsm9ds1 stts22h stts751

    vc编程基础与实践

    本书主要介绍Visual C++ 6.0编程技术,内容涉及相当广泛,既包括Visual C++常规编程技术和应用程序基础的介绍,又有图形用户界面、ActiveX控件、多媒体、数据库等高级话题的介绍。通过这些内容的学习,会使用户充分...

    rails5_actioncable_demo_step_by_step:这是@dhh的ActionCable演示,每个步骤都是一个单独的提交

    该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本 系统依赖 配置 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) 部署说明 ...

    LIS3DH.zip_LIS3DH_LIS3DH 官方驱动_Lis3dh驱动_ST_lis3dh实例

    ST官方网站提供的驱动和实例代码,使用时需要在读写寄存器接口增加硬件驱动

    2009最新编程语言排名

    Rails由David Heinemeier Hansson(DHH)创建,它简化了Web应用的开发流程,提供了一种更为简洁高效的开发方式。Rails的出现不仅促进了Ruby语言的发展,也为整个Web开发领域带来了深远的影响。 ##### Rails对Ruby的...

    RxWebSocket:使用okhttp和rxJava的自动重新连接webSocket构建

    RxWebSocket是一个基于okhttp和RxJava(RxJava1和RxJava2都有)封装的WebSocket客户端,此库的核心特点是 除了手动关闭WebSocket(就是RxJava取消订阅),WebSocket在异常关闭的时候(onFailure,发生异常,如...

    Ruby on Rails 初体验--北大青鸟教师专题讲座PPT

    Ruby on Rails,简称RoR,是由Ruby编程语言构建的开源Web应用框架,以其高效和简洁的设计原则闻名。RoR遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用开发,降低开发者的工作负担,提高开发效率。该...

    LIS3DH驱动文件

    LIS3DH是一款由意法半导体(STMicroelectronics)生产的三轴数字加速度计,它能够检测设备在三个正交轴上的线性加速度。这款传感器广泛应用于物联网、消费电子、运动健身设备以及机器人等领域,因为其低功耗、高精度...

    TextMate 2.0.23 fix 著名的文本编辑器

    包括DHH在内的Rails核心开发者一直都使用TextMate进行开发,原因就是他们主要都在使用Mac OS系统,并且TextMate具备出色的界面、强大的宏定义、以及可下载和编辑的宏定义包(bundles),这些都帮助开发者将编码的...

    Github注册和基本使用.docx

    接下来我们要做的就是把本地仓库传到 Github 上去,在此之前还需要设置 username 和 email,因为 Github 每次 commit 都会记录他们。使用命令 `git config --global user.name "your name"` 和 `git config --global...

    Agile Web Development with Rails 4

    《Agile Web Development with Rails 4》这本书是关于使用Ruby on Rails框架进行敏捷网页开发的权威指南。Ruby on Rails,简称Rails,是一种开源的网络应用框架,由Ruby语言编写,它遵循“约定优于配置”的原则,...

    Ruby on Rails敏捷开发最佳实践源代码

    Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在提升开发效率和代码可读性,鼓励使用敏捷开发方法。这个压缩包包含了“Ruby on Rails敏捷开发...

Global site tag (gtag.js) - Google Analytics