过去几个月我一直在使用Ruby,但我还没想到的一件事是Ruby相当于C#(和其他语言)using
语句。
我一直在使用require
语句来声明我对Gems的依赖,但是我变得很懒,并且不希望完全限定我经常使用的类名和模块(名称空间)名称。
当然这是可能的,对吧?我一定不能使用正确的术语,因为谷歌没有给我任何有用的东西。
答案 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"