假设我使用irb,然后输入a = 5.如何删除a的定义,以便键入a返回NameError

一些背景:稍后我想这样做:

context = Proc.new{}.binding
context.eval 'a = 5'
context.eval 'undef a'  # though this doesn't work.

推荐答案

remove_class_variableremove_instance_variableremove_const种方法,但目前没有适用于局部变量的等效方法.

Ruby相关问答推荐

MongoDB通过Brew Services";未定义的方法`plist_starting';";

当我在 Ruby 中围绕最后一个字符拆分时,如何拆分字符串?

如何使用 HEREDOC 作为参数传递给方法?

Rb:仅通过在 Ruby 中的类上添加 each 方法,可枚举模块是如何工作的?

Ruby:如何将两个返回值连接到一行中的两个字符串

判断一个数组是否是Ruby中另一个数组的子集

如何判断一个对象在 Ruby 中是否可迭代?

bundler 可以告诉我 Gemfile 中的哪些 gem 有更新的版本

如何在没有 Web 服务器的情况下从命令行执行 ruby​​ 模板文件 (ERB)?

Ruby 连接字符串并添加空格

如何在不按 Enter 的情况下获取单个字符?

按键对哈希进行分组并对值求和

读取文件时如何避免 UTF-8 BOM

我可以使用 `else if` 而不是 `elsif` 吗?

删除/取消定义类方法

Ruby CSV - 获取当前行/行号

如何转换 Ruby 哈希,使其所有键都是符号?

Ruby 方法to_sym有什么作用?

哪个键/值存储最有前途/最稳定?

如何在 Mac OS Sierra 10.12 上安装 Nokogiri