当前位置:  开发笔记 > 后端 > 正文

Ruby'require'语句是在类定义的内部还是外部?

如何解决《Ruby'require'语句是在类定义的内部还是外部?》经验,为你挑选了4个好方法。

在Ruby中使用类文件时,是否将'requires'语句放在文件的顶部或类定义中?



1> Chuck..:

从技术上讲,这并不重要.require它只是一个普通的方法调用,它调用的范围不会影响它的工作方式.唯一不同的位置是,当它被放置的任何代码被评估时它将被执行.

实际上,您应该将它们放在最前面,以便人们可以一目了然地看到文件的依赖关系.那是传统的地方.



2> ewakened..:

在顶部.

require 'rubygems'
require 'fastercsv'

class MyClass
  # Do stuff with FasterCSV
end



3> Mike Woodhou..:

我可以看到一个可能的原因,就是不要把require文件置于文件的顶部:加载费用昂贵且不总是执行.我遇到的一种情况是,例如,代码及其测试位于同一个文件中,特别是对于小型库代码,我不时喜欢这样做.然后我可以从我的编辑器运行该文件并运行测试.在这种情况下,当文件require从其他地方进入时,我不想test/unit加载.

有点像这样的东西:

def some_useful_library_function()
  return 1
end

if __FILE__ == $0
  require 'test/unit'
  class TestUsefulThing < Test::Unit::TestCase
    def test_it_returns_1
      assert_equal 1, some_useful_library_function()
    end
  end
end



4> Jörg W Mitta..:

你把它们放在哪里并不重要,但是如果你把它们放在一个classmodule表达式中,那么看起来你要将required文件中的任何内容导入到类的命名空间中,这不是真的:一切都在全局结束命名空间(或中定义的任何命名空间).

因此,最好将它们置于顶部以避免任何混淆.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有