需要文件而不执行代码?

2024-04-06

这里我有两个文件:

file.rb

def method
  puts "This won't be outputted."
end

puts "This will be outputted."

main.rb

require "./file"

运行 main.rb 时,它将加载 file.rb 中的所有代码,因此我会得到“这将被输出”。屏幕上。

是否可以在不运行代码的情况下加载文件?

因为我想加载所有方法(也在模块和类中),而不必在这些范围之外执行代码。


是否可以在不运行代码的情况下加载文件?

不,ruby 文件中的所有内容都是可执行代码,包括类和方法定义(例如,当您尝试在 if 语句内定义方法时,您可以看到这一点,它工作得很好)。因此,如果您不执行文件中的任何内容,则不会定义任何内容。

但是,您可以告诉 ruby​​,某些代码仅在文件直接运行时才执行,而不是在需要时执行。为此,只需将有问题的代码放入if __FILE__ == $0堵塞。因此,对于您的示例,这将有效:

file.rb

def method
  puts "This won't be outputted."
end
if __FILE__ == $0
  puts "This will not be outputted."
end

main.rb

require "./file"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要文件而不执行代码? 的相关文章

随机推荐

  • 以角度方式将依赖服务注入到父类

    我有课parent and child The child类扩展parent 我需要 Inject注射类service to parent因为所有child正在使用它 我怎样才能做到呢 您可以从父级注入任何服务或类Injector类 你需要
  • Nestjs:即使正文验证失败也会上传图像

    首先 我为我糟糕的英语表示歉意 我有一个接受 PUT 请求的方法 它接收一个文件和 BlogModel 当我从前端提交表单并且 BlogModel 的验证失败时 文件仍然会上传 main ts import NestFactory from
  • 使用 HttpServletRequestWrapper 进行复制后缺少必需的请求正文

    在我的项目中 我有一组 api 调用 应通过某些常见验证集进行过滤 在这种情况下 我必须在请求到达 REST 控制器之前拦截该请求 读取请求正文 进行验证 如果请求通过验证 则将其传递给控制器 自从HttpServletRequest不能多
  • Python 请求库给出错误“远程端关闭连接而无响应”

    我正在请求库的帮助下进行后调用 import time def retry on connection errors url data data consists of dictionary with 20 key value pairs
  • node.js,express,如何从post请求中的body表单数据中获取数据

    我有一个简单的 Node js 应用程序 我想从用户那里获取帖子正文 app js var express require express var app express app use express json app post api
  • 使用 MediaTracker 在 Swing 应用程序中缓存图像

    我有一个基于 Swing 的金融代码 它将显示价格变动的金融符号以及每个柜台 公司向上或向下的箭头 此股票行情指示器上可以有很多计数器 最多 100 个 并查看是否需要缓存图像符号以提高性能 我尝试过遵循这个article http www
  • 绘制 4d 数据

    我有 4 个维度的点 我们称它们为 v w y z 我想将其可视化 我的计划是有两个正方形 v x w y x z 彼此相邻 然后将每个点绘制两次 给定两点 1 1 1 3 2 2 2 2 我设想这样的事情 给定一小组点 我可以使用不同的颜
  • YAGNI 在编写测试时也适用吗?

    当我编写代码时 我只编写我需要的函数 这种方法也适用于编写测试吗 为了安全起见 我应该提前为我能想到的每个用例编写测试 还是应该只为遇到的用例编写测试 我认为当你编写一个方法时 你应该测试预期的和潜在的错误路径 这并不意味着您应该扩展您的设
  • Pheanstalk(beanstalk 的 PHP 客户端)- 连接如何工作?

    我需要一些帮助来理解 pheanstalk php beanstalk 客户端 的使用 我有一个 PHP 程序 当表单数据发送到服务器时 该程序在服务器上执行 然后 PHP 程序应将表单数据打包为 JSON 结构并将其发送到后端服务器进程
  • 如果子级包含类,如何将类添加到父级?

    我试图将一个类添加到父 DIV 如果它有一个类为 testing 的子 IMG 元素
  • RecyclerView 仅在滚动时更新

    我有一个布局RecyclerView使用适配器 public class SimpleRecyclerAdapter extends RecyclerView Adapter
  • 按索引获取 DataGrid 行

    我正在尝试获得DataGridRow从我的DataGrid基于索引 我正在使用以下代码 public DataGridRow GetGridRow int index DataGridRow row DataGridRow DG State
  • Gulpfile.js 加载失败

    Visual Studio 任务运行程序无法加载 gulp 文件 我用VS2017 v15 9 4然而 现在这个项目是几年前开发的 Failed to run Gulpfile js cmd exe c gulp tasks simple
  • 如何为 AVVideoComposition 设置透明背景?

    Update 我为回答这个问题添加了 50 点声誉赏金 我有一个应用程序需要将一些视频和照片放在一起以创建电影 我正在使用 AVMutableComposition 来实现这一点 为了能够指示它如何合成视频 我必须使用 AVMutableV
  • 如何在类中使用静态/辅助方法?

    我正在写一个Fraction类 我正在尝试使用gcd a b 在初始化时Fraction目的 但是 当我尝试这样做时 如果没有Fraction部分Fraction gcd a b 我用了 staticmethod在这里 但它绝对没有任何作用
  • 如何在一个 UITextView (Xcode) 中拥有两种字体?

    我想在一个 UITextView 中制作两种字体样式 我该怎么做 来自类参考 http developer apple com library IOS documentation UIKit Reference UITextView Cla
  • Linux中分配特定地址

    我想在Linux进程中的特定地址分配一块内存 实际上我想做一些类似的事情 我会有进程号 每个进程都会调用库 由我编写 中的初始化函数 该函数将在进程的地址空间中分配一些内存 它将存储进程相关信息 这将由每个进程完成 一旦分配了该内存 程序就
  • YouTube 可以嵌入 Android 应用程序吗? WebOS 或黑莓怎么样?

    是否可以在 Android 操作系统内播放 YouTube 视频而无需启动单独的 YouTube 播放器 WebOS 或黑莓怎么样 在 iPhone 上 我可以使用 WebView 和嵌入的 YouTube 代码来完成此操作 并且我正在权衡
  • 页面刷新时角度“无法获取”路线

    我的 Angular 应用程序中有一个搜索功能 执行时会点击我的 API 来获取结果 然后使用以下命令重定向用户 location url 一切都很好 直到我尝试重新加载结果页面 当我这样做时 我得到一个Cannot GET search
  • 需要文件而不执行代码?

    这里我有两个文件 file rb def method puts This won t be outputted end puts This will be outputted main rb require file 运行 main rb