好大的一个标题。接下来我要教你「函式 (function)」了!咚咚锵!说到函式,不一样的人会对它有不一样的理解和使用方法,不过我只会教你现在能用到的最简单的使用方式。
函式可以做三件事情:
- 它们可以给程序代码片段取名,就跟「变量」给字符串和数字命名一样。
- 它们可以接受参数,就跟你的脚本接受
ARGV
一样。 - 通过使用 #1 和 #2 ,他们可以让你创造出「迷你脚本」或者「微命令」。
你可以在 Ruby 中使用def
新建函式,我将让你创造四个不同的函式,它们运作起来和你的脚本一样。然后我会示范给你各个函式之间的关系。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<span class="c"># this one is like your scripts with argv</span> def puts_two<span class="o">(</span>*args<span class="o">)</span> arg1, <span class="nv">arg2</span> <span class="o">=</span> args puts <span class="s2">"arg1: #{arg1}, arg2: #{arg2}"</span> end <span class="c"># ok, that *args is actually pointless, we can just do this</span> def puts_two_again<span class="o">(</span>arg1, arg2<span class="o">)</span> puts <span class="s2">"arg1: #{arg1}, arg2: #{arg2}"</span> end <span class="c"># this just takes one argument</span> def puts_one<span class="o">(</span>arg1<span class="o">)</span> puts <span class="s2">"arg1: #{arg1}"</span> end <span class="c"># this one takes no arguments</span> def puts_none<span class="o">()</span> puts <span class="s2">"I got nothin'."</span> end puts_two<span class="o">(</span><span class="s2">"Zed"</span>,<span class="s2">"Shaw"</span><span class="o">)</span> puts_two_again<span class="o">(</span><span class="s2">"Zed"</span>,<span class="s2">"Shaw"</span><span class="o">)</span> puts_one<span class="o">(</span><span class="s2">"First!"</span><span class="o">)</span> puts_none<span class="o">()</span> |

