3
A
答えて
-2
Object
はRubyの予約語なので、クラス名として使用しないでください。
10
実際には、このコードはモジュール内にあり名前空間になっているので問題なく動作するはずです。簡単なテストのために:あなたは、オブジェクトの一部を指しますその内側に他のクラスやモジュール、中にいくつか::オブジェクトが含まれている場合
module Some
class Object
def foo
"bar"
end
end
end
Some::Object.new.foo # "bar"
Some::Object.new.class # "Some::Object"
# And it doesn't pollute the global namespaced Object class:
Object.new.respond_to?(:foo) # false
それは潜在的に、しかし、混乱や曖昧である可能性があります。しかし、そのクラスやモジュールの外には何の影響も与えません。
+0
これは正しい答えです:唯一の本当の欠点は混乱していることです。 – Chuck
3
落とし穴がいくつかありますが、機能します。これを行うと、既にRubyにあるObjectクラスが展開されます。
class Object
def hello
end
end
名前空間にすると、その名前空間に新しいクラスが作成されます。
module Foo
class Object
# ...
end
end
技術的に言えば、これは問題ではありません。
組み込みのObject
クラスを参照する場合は、::Object
を使用する必要があります。あなたはそれほど頻繁にはしませんが、大きな問題ではありません。
他の問題は、他の開発者にとって非常に混乱する可能性があることです。これは考慮する必要があります。あなたのスニペットからこのSome::Object
クラスが何をするのかは分かりませんが、おそらくSome::Record
、Some::Entity
が理にかなっています。
関連する問題
- 1. クラスとモジュールのRuby名前空間?
- 2. 私はアニメーションという名前のクラスと同じディレクトリにanimationResources.xamlという名前のリソースディクショナリを持つクラスC#
- 3. Rubyは名前のルートで
- 4. Rubyのクラス名の前にある二重コロンですか?
- 5. クラスstd :: vector <Object>には 'x'という名前のメンバーはありません
- 6. Rubyクラスの名前はどのように取得できますか?
- 7. エラー:クラス」内の「VALUE_TYPE」という名前の無いタイプ
- 8. RubyのObject#taintとObject#trustメソッドは何ですか?
- 9. C#という名前のクラスに新しい名前を付けることは可能ですか?
- 10. 異なる名前のObject to Objectsマッパー
- 11. 「this」を使用して[object Object]の名前を取得
- 12. Fractionという名前の新しいクラスを作成する
- 13. Rubyで名前付きクラスを動的に定義する
- 14. 「ロボット」という名前のクラスが見つかりません
- 15. OrientDB: 'from'という名前のクラスを作成する
- 16. モジュール名のない参照用rubyクラス
- 17. プロデューサメソッドと名前付きクラス
- 18. Rubyの配列名quals次の名前
- 19. JSONという名前のオブジェクトと名前のプロパティの配列
- 20. 名前空間とクラス - 名前のあいまいさの解決
- 21. どのように私はクラスをObject-Cの名前空間で区切りますか?
- 22. ユビキタスアナログとRubyのUnixコマンドパイプラインの `Object#tap`?
- 23. Ruby on Railsモデルの名前。 Ruby on Railsモデルの名前を付けるには?
- 24. RubyのObjectとBasicObjectの違いは何ですか?
- 25. Propertiesクラスの名前
- 26. rubyの別のクラスにクラス名を変数として渡す
- 27. Ruby On Rails - 名前空間
- 28. NSInvalidUnarchiveOperationException:NSLayoutConstraintという名前のクラスをインスタンス化できませんでした
- 29. Ruby:クラスの名前を使ってクラスオブジェクトを作成していますか?
- 30. Rubyで関数を名前で渡す
ObjectはRubyの予約語ではありません。String、Hashなどと同様に、特定のクラスを参照するグローバルに定義された定数です。Rubyの予約語は 'if'、' return'などです。 –