Ruby#等效C#'使用'语句

时间:2009-12-03 04:55:39

标签: c# ruby syntax module namespaces

过去几个月我一直在使用Ruby,但我还没想到的一件事是Ruby相当于C#(和其他语言)using语句。

我一直在使用require语句来声明我对Gems的依赖,但是我变得很懒,并且不希望完全限定我经常使用的类名和模块(名称空间)名称。

当然这是可能的,对吧?我一定不能使用正确的术语,因为谷歌没有给我任何有用的东西。

2 个答案:

答案 0 :(得分:6)

>> Math::PI
=> 3.14159265358979
>> PI
NameError: uninitialized constant PI
    from (irb):3
>> include Math
=> Object
>> PI
=> 3.14159265358979

OTOH,如果问题只是别名类名,请考虑一下,因为他们说“ Class是一个对象,而Object是一个类”。

所以:

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

是的,在Ruby中,类名只是类Class对象的任何其他引用。

答案 1 :(得分:1)

我不相信有直接的句法映射。您可以近似它,因为您可以为几乎所有内容(包括模块和类)分配变量引用。

module UsingExampleNamespace
    module SubExampleNamespace
        CON = "STANT"
    end
end

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