<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>orangi (ORANGI)</title>
    <link>https://ruby-china.org/orangi</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>Ruby 的块和 C/C++ 的块的区别</title>
      <description>&lt;p&gt;这个以前是学 C 语言起步的 所以有一些 C/C++ 的概念比较根深蒂固 所以上来咨询一下块的问题&lt;/p&gt;

&lt;p&gt;在 C/C++ 里&lt;/p&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我们可以这样区分多个块来进行对 x 的划分，而且在 C/C++ 里面，这样是允许的，也有很多这样的例子；但是在 Ruby 里面&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;f&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样的写法是不允许的。在 Ruby 里面一个块必须得有一个方法来引导或者必须作为一个对象来保存&lt;/p&gt;

&lt;p&gt;对于这点有点不明白&lt;/p&gt;</description>
      <author>orangi</author>
      <pubDate>Sun, 23 Aug 2015 23:39:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/27044</link>
      <guid>https://ruby-china.org/topics/27044</guid>
    </item>
  </channel>
</rss>
