[解決済み] Ruby: :: prefixは何をするものですか?
2023-02-08 15:12:08
質問
のソースを読んでいたのですが 人工物 を見ていて
module Artifice
NET_HTTP = ::Net::HTTP
# ...
end
の行になります。 https://github.com/wycats/artifice/blob/master/lib/artifice.rb#L6
なぜ
Net::HTTP
の代わりに
::Net::HTTP
を使うのはどういう意味なのでしょうか?
::
を接頭辞として使うのはどういうことでしょうか?
どのように解決するのですか?
この
::
はスコープ解決演算子です。これはモジュールがどのようなスコープで見つけられるかを決定するものです。たとえば
module Music
module Record
# perhaps a copy of Abbey Road by The Beatles?
end
module EightTrack
# like Gloria Gaynor, they will survive!
end
end
module Record
# for adding an item to the database
end
アクセスするには
Music::Record
の外から
Music
の外側では
Music::Record
.
参照するには
Music::Record
から
Music::EightTrack
を使用すると、単純に
Record
というのは、これは同じスコープで定義されているからです。
Music
).
しかし
Record
モジュールからデータベースとのインターフェイスを担当する
Music::EightTrack
を使用することはできません。
Record
を使いたいからです。
Music::Record
. このとき、プレフィックスとしてスコープ解決演算子を使い、グローバル/メインスコープを指定することになります。
::Record
.
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] w(array)とはどういう意味ですか?
-
[解決済み] Rubyのmap(&:name)ってどういう意味?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】RubyにあってPythonにないもの、またその逆は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ...』の違い (ダブルドット) と '...' の違い?(トリプルドット)の違いについて教えてください。
-
[解決済み] レスキューVSシドキック?[クローズド]
-
[解決済み] rubyのClassとKlassの違いは何ですか?
-
[解決済み] Sinatraがファイルを変更するたびに自動で再読み込みするようにするには?
-
[解決済み] doブロックと中括弧{}の使い分け
-
[解決済み] Hash.new([]などのHashのデフォルト値を使用すると、予期せぬ動作(値が消える/変わる)が発生します。)
-
[解決済み] Ruby初心者が注意すべきRuby Gotchasとは?[クローズド]
-
[解決済み] ルビー、!オペレーター(a/k/a ダブルバン)[重複]|日本郵船
-
[解決済み] ファイルに新しい行を追加しますか?
-
[解決済み] インスタンス変数の値をその名前で取得する