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

Ruby变量范围块

发布时间:2020-12-17 02:54:34 所属栏目:百科 来源:网络整理
导读:在C中,您可以使用语句块将局部变量与其父作用域隔离. int foo() { { int a; } // Here `a` is no longer in the scope.} 但在Ruby中,以下内容无法解析. def foo do a = 1 end puts aend 有没有把变量隔离到Ruby中的范围的技巧? 解决方法 在大多数情况下,最
在C中,您可以使用语句块将局部变量与其父作用域隔离.

int foo() {
    {
        int a;
    }
    // Here `a` is no longer in the scope.
}

但在Ruby中,以下内容无法解析.

def foo
    do
        a = 1
    end
    puts a
end

有没有把变量隔离到Ruby中的范围的技巧?

解决方法

在大多数情况下,最合适的“内部范围”是一种单独的方法.通常,如果某个算法块中的某些数据在外部不可见,则值得将此块提取到单独的方法中.它也可以,这个块可以成为一个很好的论点.

As the docs state,这些都是具有自己的局部变量范围的所有情况:

> proc {…}(因此,方法调用中的块)> loop {…}(接受块的方法,与上面相同)> def … end(方法实现)>等级……结束>模块……结束>整个程序(虽然这在问题的范围内没有用)

(编辑:李大同)

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

    推荐文章
      热点阅读