代码之家  ›  专栏  ›  技术社区  ›  Jason Whitehorn

“using”语句的Ruby等价物

  •  4
  • Jason Whitehorn  · 技术社区  · 15 年前

    在过去的几个月里,我一直在研究Ruby,但有一件事我还没弄清楚,那就是Ruby与C(和其他语言)的等价物是什么。 using 语句是。

    我一直在使用 require 声明我对gems的依赖关系,但是我越来越懒惰了,我不希望用它们的模块(名称空间)名称完全限定我经常使用的类名。

    当然可以,对吧?我不能用正确的术语,因为谷歌没有给我任何有用的信息。

    2 回复  |  直到 15 年前
        1
  •  6
  •   DigitalRoss    15 年前
    >> Math::PI
    => 3.14159265358979
    >> PI
    NameError: uninitialized constant PI
        from (irb):3
    >> include Math
    => Object
    >> PI
    => 3.14159265358979
    

    奥思,如果问题仅仅是类名的别名,就要考虑到这一点,正如他们所说的那样。” 类是对象,对象是类 “。

    所以:

    >> require 'csv'
    >> r = CSV::Reader
    >> r.parse 'what,ever' do |e| p e end
    ["what", "ever"]
    

    是的,在Ruby中类名只是对类对象的引用 Class .

        2
  •  1
  •   segy    15 年前

    我不相信有直接的句法映射。不过,您可能可以对其进行近似估计,因为您可以将变量引用分配给几乎所有内容,包括模块和类。

    module UsingExampleNamespace
        module SubExampleNamespace
            CON = "STANT"
        end
    end
    
    sen = UsingExampleNamespace::SubExampleNamespace
    puts sen::CON
    >> "STANT"