5 Stimmen

Ruby-Äquivalent zu C# 'using'-Anweisung

Ich habe mich in den letzten Monaten mit Ruby beschäftigt, aber eine Sache, die ich noch nicht herausgefunden habe, ist was das Ruby-Äquivalent von C#'s (und anderen Sprachen) using Anweisung ist.

Ich habe die require Anweisung verwendet, um meine Abhängigkeiten von Gems zu deklarieren, aber ich werde faul und würde es vorziehen, meine häufig verwendeten Klassennamen nicht vollständig durch ihren Modul (Namespace) Namen zu qualifizieren.

Es muss doch möglich sein, oder? Ich verwende wahrscheinlich nicht die richtige Terminologie, da mir Google nichts Nützliches gegeben hat.

6voto

DigitalRoss Punkte 138823
>> Math::PI
=> 3,14159265358979
>> PI
NameError: uninitialized constant PI
    from (irb):3
>> include Math
=> Object
>> PI
=> 3,14159265358979

Andererseits, wenn das Problem nur darin besteht, Klassennamen zu verknüpfen, bedenken Sie, wie sie sagen "Klasse ist ein Objekt, und Objekt ist eine Klasse".

Also:

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

Ja, in Ruby ist der Klassenname nur ein Verweis wie jeder andere auf ein Objekt der Klasse Class.

1voto

segy Punkte 644

Ich glaube nicht, dass es eine direkte syntaktische Zuordnung gibt. Sie können sie jedoch wahrscheinlich annähernd machen, da Sie Variablenverweise auf so ziemlich alles zuweisen können, einschließlich Module und Klassen.

modul UsingExampleNamespace
    modul SubExampleNamespace
        CON = "STANT"
    end
end

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X