<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>fenginsc (fenginsc)</title>
    <link>https://ruby-china.org/fenginsc</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>请问 Ruby 中 range 可以间隔生成数据吗？</title>
      <description>&lt;p&gt;比如我要生成 1 到 10 的数组&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;那么我要生成一个 1,3,5,7,9 的等差数列怎么办？&lt;/p&gt;</description>
      <author>fenginsc</author>
      <pubDate>Thu, 06 May 2021 10:01:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/41232</link>
      <guid>https://ruby-china.org/topics/41232</guid>
    </item>
    <item>
      <title>请教关于 Ruby 方法的一些问题</title>
      <description>&lt;p&gt;第一个问题，有如下方法，有两个参数且都设了默认值，有没有办法只传 y 的值但不传 x 的值的调用？&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;test&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="n"&gt;y&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="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;比如 test(y = 5) 我试了这样不对，会创建一个 y 的变量且值还是传给了 x。&lt;/p&gt;

&lt;p&gt;第二个问题，lambda 表达式中的分号是什么意思？这个 y 没有任何作用？&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;y&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="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第三个问题，还是第一个问题的那个方法，执行以下语句返回 0 和 1 是什么意思？&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;test&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="nb"&gt;test&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="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;求解不明白，网上关于这块的资料也比较少。&lt;/p&gt;</description>
      <author>fenginsc</author>
      <pubDate>Sat, 16 Jan 2021 04:25:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/40816</link>
      <guid>https://ruby-china.org/topics/40816</guid>
    </item>
    <item>
      <title>不知道大家有没有试过直接 cmd 输入 ruby 然后可以输入东西，不过这个有什么用？</title>
      <description>&lt;p&gt;不知道大家有没有试过直接 cmd 输入 ruby 然后可以输入东西，不过这个有什么用？&lt;/p&gt;</description>
      <author>fenginsc</author>
      <pubDate>Fri, 22 May 2020 19:50:10 +0800</pubDate>
      <link>https://ruby-china.org/topics/39891</link>
      <guid>https://ruby-china.org/topics/39891</guid>
    </item>
    <item>
      <title>请问如何给官方提建议？期待 Ruby 更加美好</title>
      <description>&lt;p&gt;我觉得目前的 ruby 如果能吸收 python 和 javascript 的优点，就更加完美了。
比如增加 python 的 AOP 特性 (装饰器)，def 定义的方法名也是一个变量，可以覆盖（就是重复定义）类似 javascript，然后支持函数式编程，高阶函数（支持传入函数，传出函数），现在来看还不能算真正支持函数式。
ruby 这种纯面向对象语言 + 函数式语言思想 = 完美中的理想语言
最最重要的是统一化函数定义 (def,define_method,proc,lambda),目前的函数定义很混乱，如果都能统一成方法就好了，所谓的 proc,block,lambda 其实都可以统一成高阶函数的形式，虽然可能改动会比较大，但确实能够让 ruby 更好用，也更易学，整个语言就是参数可以是函数，返回也可以是函数。
也就是提升函数地位（一等公民）。&lt;/p&gt;</description>
      <author>fenginsc</author>
      <pubDate>Sat, 18 Apr 2020 20:40:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/39755</link>
      <guid>https://ruby-china.org/topics/39755</guid>
    </item>
    <item>
      <title>请问 Ruby 中子方法如何访问父方法中的局部变量，类似 JavaScript 的闭包？</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;method1&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;param&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="nf"&gt;method2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&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;return&lt;/span&gt; &lt;span class="n"&gt;method2&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;method1&lt;/span&gt;
&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样会报错 undefined local variable or method `param' for main:Object (NameError)
请问有什么解决方法吗？还是说 ruby 中必须用类来在外面包装一层？不能直接定义方法吗类似 javascript&lt;/p&gt;</description>
      <author>fenginsc</author>
      <pubDate>Thu, 16 Apr 2020 17:15:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/39751</link>
      <guid>https://ruby-china.org/topics/39751</guid>
    </item>
  </channel>
</rss>
