gpt4 book ai didi

ruby - .rake 和 .rb 文件扩展名之间的差异

转载 作者:太空宇宙 更新时间:2023-11-03 15:59:36 25 4
gpt4 key购买 nike

我知道 Rake 是 DSL 和 Ruby 的子集。我意识到我必须创建 Rakefile 作为入口点(令人惊讶的是 Rakefile.rake 不是一个选项)。在这个 rakefile 中,我可能会包含对其他 *.rake、*.rb 文件的引用:

load './file1.rake' 
#require './file1.rake' #Why does this fail?
require './file2'

task 'a' => ['rakeFile', 'rbFile'] do
puts 'helo wurld'
end


task 'b' => ['rbFile'] do
puts 'helo wurld'
end

require 似乎无法处理 *.rake 文件。这似乎有问题。我不明白为什么要使用 *.rake 文件扩展名。在 Rake 中编程时,我不能将 require 与 *.rake 一起使用,而 *.rb 似乎工作得很好......使用 *.rake 比 *.rb 有什么好处?

最佳答案

我使用“.rb”作为 Ruby 和 Rake 文件的扩展名。 Rake 文件 Ruby 文件,它们只是引用 DSL 提供的扩展。通过使用相同的扩展,我的编辑们很高兴,Ruby 也很高兴。

鲁比的 require如果您不这样做,将自动提供扩展名:

If the filename has the extension “.rb”, it is loaded as a source file; if the extension is “.so”, “.o”, or “.dll”, or the default shared library extension on the current platform, Ruby loads the shared library as a Ruby extension. Otherwise, Ruby tries adding “.rb”, “.so”, and so on to the name until found. If the file named cannot be found, a LoadError will be raised.

另外,请注意 loadrequire 做的事情不同。 load 强制文件重新加载,其中 require 执行一次。这意味着如果您在循环中加载 文件,成本会更高,尤其是当该文件启动速度较慢时。

关于ruby - .rake 和 .rb 文件扩展名之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28303871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com