<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>davidlichao (超桑)</title>
    <link>https://ruby-china.org/davidlichao</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>File.read 读不全文件</title>
      <description>&lt;p&gt;代码和环境如下，File.read 只能输出到 1860 行。&lt;img title=":cold_sweat:" alt="😰" src="https://twemoji.ruby-china.com/2/svg/1f630.svg" class="twemoji"&gt;&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;RUBY VERSION: 2.2.0 &lt;span class="o"&gt;(&lt;/span&gt;2014-12-25 patchlevel 0&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;x86_64-linux]
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Debug&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;initialize&lt;/span&gt;
    &lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"debug.txt"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"w+:UTF-8"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;times&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"debug.txt"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="no"&gt;Debug&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>davidlichao</author>
      <pubDate>Tue, 30 Dec 2014 15:51:50 +0800</pubDate>
      <link>https://ruby-china.org/topics/23477</link>
      <guid>https://ruby-china.org/topics/23477</guid>
    </item>
    <item>
      <title>用 attr_reader 添加所有实例变量的方法？</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ExampleObject&lt;/span&gt;

    &lt;span class="nb"&gt;attr_reader&lt;/span&gt; &lt;span class="ss"&gt;:a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:e&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;initialize&lt;/span&gt;

        &lt;span class="vi"&gt;@a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"?"&lt;/span&gt;
        &lt;span class="vi"&gt;@b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"?"&lt;/span&gt;
        &lt;span class="vi"&gt;@c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"?"&lt;/span&gt;
        &lt;span class="vi"&gt;@d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"?"&lt;/span&gt;
        &lt;span class="vi"&gt;@e&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"?"&lt;/span&gt;

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

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

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我需要像上面这样定义一个类，并且所有的实例变量都设置&lt;code&gt;attr_reader&lt;/code&gt;。如果实例变量越来越多，这句话会越来越长，有没有能直接设置所有实例变量都为&lt;code&gt;attr_reader&lt;/code&gt;呢？
简单的说，&lt;code&gt;attr_reader :a, :b, :c, :d, :e&lt;/code&gt;这一句能不能简单的描述？&lt;/p&gt;</description>
      <author>davidlichao</author>
      <pubDate>Tue, 27 May 2014 14:42:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/19563</link>
      <guid>https://ruby-china.org/topics/19563</guid>
    </item>
    <item>
      <title>Windows XP 下的 Ruby 升级不到 2.0 么？</title>
      <description>&lt;pre class="highlight shell"&gt;&lt;code&gt;C:&lt;span class="se"&gt;\D&lt;/span&gt;ocuments and Settings&lt;span class="se"&gt;\A&lt;/span&gt;dministrator&amp;gt;gem update &lt;span class="nt"&gt;--system&lt;/span&gt;
Latest version currently installed. Aborting.

C:&lt;span class="se"&gt;\D&lt;/span&gt;ocuments and Settings&lt;span class="se"&gt;\A&lt;/span&gt;dministrator&amp;gt;gem &lt;span class="nt"&gt;-v&lt;/span&gt;
2.0.7

C:&lt;span class="se"&gt;\D&lt;/span&gt;ocuments and Settings&lt;span class="se"&gt;\A&lt;/span&gt;dministrator&amp;gt;ruby &lt;span class="nt"&gt;-v&lt;/span&gt;
ruby 1.9.3p392 &lt;span class="o"&gt;(&lt;/span&gt;2013-02-22&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;i386-mingw32]

C:&lt;span class="se"&gt;\D&lt;/span&gt;ocuments and Settings&lt;span class="se"&gt;\A&lt;/span&gt;dministrator&amp;gt;rails &lt;span class="nt"&gt;-v&lt;/span&gt;
Rails 4.0.0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我用的是 railsinstaller 的 Windows 版本，装完之后用&lt;code&gt;gem update --system&lt;/code&gt;和&lt;code&gt;gem update&lt;/code&gt;升级了 gem。
Rails 已经升到 4.0 了，怎么 Ruby 升不到 2.0？&lt;/p&gt;</description>
      <author>davidlichao</author>
      <pubDate>Mon, 09 Sep 2013 13:52:52 +0800</pubDate>
      <link>https://ruby-china.org/topics/13979</link>
      <guid>https://ruby-china.org/topics/13979</guid>
    </item>
    <item>
      <title>programming-ruby-1-9-2-0 中有一段代码的运行结果不对？</title>
      <description>&lt;p&gt;代码如下：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Song&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Struct&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"songdata"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;song_file&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;songs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="n"&gt;song_file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
        &lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chomp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/\s*\|\s*/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;songs&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;Song&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;songs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&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;预期结果：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#&amp;lt;struct Song title="Wonderful World", name="Louis Armstrong", length="2:58"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;文件 songdata 在同目录下，内容如下：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;jazzj00132.mp3   345  Fats     Waller      Ain't Misbehavin'
jazzj00319.mp3   258  Louis    Armstrong   Wonderful World
bgrassbg0732.mp3 409  Strength in Numbers  Texas Red
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是我运行的结果却是：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#&amp;lt;struct Song title=nil, name=nil, length=nil&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;请问这是为什么呢？&lt;img title=":cold_sweat:" alt="😰" src="https://twemoji.ruby-china.com/2/svg/1f630.svg" class="twemoji"&gt;&lt;/p&gt;</description>
      <author>davidlichao</author>
      <pubDate>Sun, 04 Aug 2013 13:29:47 +0800</pubDate>
      <link>https://ruby-china.org/topics/13038</link>
      <guid>https://ruby-china.org/topics/13038</guid>
    </item>
  </channel>
</rss>
