开发者社区 问答 正文

Ruby的块和C语言的块的区别

在C/C++里

void f(){
    int x=1;
    {
        x=2;
    }
    {
        x=3;
    }
}
我们可以这样区分多个块来进行对x的划分,而且在C/C++里面,这样是允许的,也有很多这样的例子;但是在Ruby里面

def f
    x=1
    {
        x=2
    }
end

这样的写法是不允许的。在Ruby里面一个块必须得有一个方法来引导或者必须作为一个对象来保存

对于这点有点不明白

展开
收起
a123456678 2016-06-08 20:24:57 2041 分享 版权
1 条回答
写回答
取消 提交回答
  • 因为C语言的'块'和Ruby的'块'是不一样的东西。
    C语言的'块'除了它自己是一级作用域之外和普通的代码没有区别。
    至于Ruby的'块',你确定你学过Ruby?
    Ruby的'块'比较复杂,简单来说,你可以认为它等同于C语言的函数,而不只是一个C语言的‘块’。

    2019-07-17 19:32:41
    赞同 展开评论
问答分类:
问答标签:
问答地址: