亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是Ruby的雙冒號:‘?

什么是Ruby的雙冒號:‘?

波斯汪 2019-07-11 13:33:28
什么是Ruby的雙冒號:‘?這個雙冒號是什么?::?例如:Foo::Bar.我找到了一個定義:這個::是一個一元運算符,它允許從類或模塊之外的任何地方訪問定義在類或模塊中的常量、實例方法和類方法。范圍(私有的,受保護的)有什么好處?::揭露什么嗎?
查看完整描述

3 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

::基本上是一個名稱空間解析操作符。它允許您訪問模塊中的項,或類中的類級項.例如,假設您有這樣的設置:

module SomeModule
    module InnerModule
        class MyClass
            CONSTANT = 4
        end
    endend

你可以CONSTANT從模塊外部SomeModule::InnerModule::MyClass::CONSTANT.

它不會影響在類上定義的實例方法,因為您可以訪問具有不同語法的實例方法(點).).

相關注意:如果要返回頂級命名空間,請執行以下操作:SomeModule-本杰明·奧克斯


查看完整回答
反對 回復 2019-07-11
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

::允許您訪問在另一個類或模塊中定義的常量、模塊或類。它用于提供名稱空間,以便方法和類名不會與不同作者的其他類發生沖突。

當你看到ActiveRecord::Base在Rails中,它意味著Rails有類似的

module ActiveRecord
  class Base
  endend

即稱為Base模塊內部ActiveRecord然后被引用為ActiveRecord::Base(您可以在activerecord-N.N/lib/Active_Record/base.rb中的Rails源代碼中找到這一點)

:的一種常見用法是訪問模塊中定義的常量。

module Math
  PI = 3.141 # ...endputs Math::PI

這個::運算符不允許您繞過標記為私有或受保護的方法的可見性。


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 1020 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號