<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>xiaojin2630 (Xj)</title>
    <link>https://ruby-china.org/xiaojin2630</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>大家平时用 python 工作多吗, 发现现在的很多 IT 岗位都要求会 python，几乎见不到 ruby </title>
      <description>&lt;p&gt;python 也看过语法，写过一点点代码，至于它的优缺点，也不是我个人能说的准确，说的全的。&lt;/p&gt;

&lt;p&gt;但从个人爱好来说，确实很偏向 ruby，随便搜了下招聘的岗位，如开发，运维，算法开发，算法测试等，发现几乎见不到要 ruby 的，像我这安徽更不用说了。
发现很多都要求会 python 的，有点尴尬。但从心里上，又很抵触 python 的学习和掌握。。。&lt;/p&gt;</description>
      <author>xiaojin2630</author>
      <pubDate>Fri, 14 May 2021 15:17:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/41258</link>
      <guid>https://ruby-china.org/topics/41258</guid>
    </item>
    <item>
      <title>在类继承时关于类实例保存 class 的问题</title>
      <description>&lt;p&gt;使用类变量保存 subclass 是没问题的：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Base&lt;/span&gt;
    &lt;span class="vc"&gt;@@a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;inherited&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subclass&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"subclass = &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;subclass&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="vc"&gt;@@a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;subclass&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt; 

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;out&lt;/span&gt;
        &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="vc"&gt;@@a&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt; 

&lt;span class="k"&gt;end&lt;/span&gt; 

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;C1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;Base&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;D&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;C1&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="no"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;out&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Base.out 输出为：
subclass = C1
subclass = D
[C1, D]&lt;/p&gt;

&lt;p&gt;但我改成类实例变量，就会报错：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Base&lt;/span&gt;
    &lt;span class="vi"&gt;@list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;inherited&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subclass&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"subclass = &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;subclass&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="vi"&gt;@list&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;subclass&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt; 

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;out&lt;/span&gt;
        &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="vi"&gt;@list&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt; 

&lt;span class="k"&gt;end&lt;/span&gt; 

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;C1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;Base&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;D&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;C1&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="no"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;out&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;subclass = C1
subclass = D
1.rb:7:in &lt;code&gt;inherited': undefined method&lt;/code&gt;&amp;lt;&amp;lt;' for nil:NilClass (NoMethodError)
        from 1.rb:19:in `&lt;/p&gt;'&lt;p&gt;&lt;/p&gt;

&lt;p&gt;但若是将 class D &amp;lt; Base 时，再执行 Base.out 就不报错，输出正确了。
为什么 class D &amp;lt; C1 时，会报错呢？ &lt;/p&gt;</description>
      <author>xiaojin2630</author>
      <pubDate>Wed, 12 May 2021 14:40:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/41250</link>
      <guid>https://ruby-china.org/topics/41250</guid>
    </item>
  </channel>
</rss>
