加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

::运算符如何在Ruby中工作?

发布时间:2020-12-17 03:18:16 所属栏目:百科 来源:网络整理
导读:我是 Ruby的新手,我对::运算符感到困惑.为什么以下代码输出2,3,4,5,1而不仅仅输出1?谢谢! class C a = 5 module M a = 4 module N a = 3 class D a = 2 def show_a a = 1 puts a end puts a end puts a end puts a end puts aendd = C::M::N::D.newd.show_
我是 Ruby的新手,我对::运算符感到困惑.为什么以下代码输出2,3,4,5,1而不仅仅输出1?谢谢!

class C
  a = 5
  module M
    a = 4
    module N
      a = 3
      class D
        a = 2
        def show_a
          a = 1
          puts a
        end
        puts a
      end
      puts a
    end
    puts a
  end
  puts a
end



d = C::M::N::D.new
d.show_a

解决方法

如果删除最后一行,您将看到将获得5,2.原因是类和模块的主体只是常规代码(与其他语言不同).因此,在解析类/模块时将执行这些print语句.

至于如何::工作 – 它只是让你在范围内移动. :: A将引用主范围中的A.只是A将在当前范围内引用A. A :: B将引用位于A内部的B,它位于当前范围内.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读