方法的可选参数

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

如果你想让一个方法支持任意数量的参数 ... 可以这样 .. 在这个 w 参数的前面添加一个 * 号 .. 然后在调用 talk 方法的时候,多给它添加几个参数的值 ...

再去运行一下 ...

会输出提供给方法的这几个参数的值 ... 注意现在 w 参数的值是一个数组 ... 数组里的几个项目就是我们提供给这个方法的参数的值 ...

下面我们再试一下带星号还有不带星号混合到一块儿的参数 .. 定义方法的时候,在这个 *w 的前面,再添加两个不带星号的参数 ... w1 ,还有 w2 ..

在方法里,输出 w1 ... w2,还有 w 这些参数的值 ...

然后设置一下调用方法的时候提供的参数的值 ... 1, 2, 3, 4, 5 ... 再去运行一下 ...

这里 w1 这个参数的值是 1 ,w2 参数的值是 2,剩下的参数的值都交给了我们的 *w 这个参数 .. 它是一个数组 ...

再回过来 ... 调换一下参数的顺序 ... 让这个 *w 参数在另外两个参数的中间 ... 提供的参数的值不用动 ... 然后再运行一下 ..

现在,w1 参数的值是 1,也就是我们提供的第一个参数的值,w2 这个参数的值是 5,是我们提供的最后一个参数值 ... 中间的 2,3,4 这几个值都交给了这个带 * 号的 w 参数 ...

这次我们可以把这个带星号的参数放到最前面 ...

再运行一下 ..

现在, w1 的值是 4,w2 的值是 5,这个值是我们提供的倒数第一个参数值,w2 这个参数的位置也是所有参数的倒数第一 ...

剩下的 1,2,3,交给了 带星号的 w 参数 ...

这次我们再试一下,调用 talk 方法的时候,只给它提供两个参数值 ...

然后再运行一下 ...

你会发现 ... w1 参数的值是 1,w2 参数的值是 2 ,带 * 号的 w 参数的值是一个空白的数组 ... 虽然这个参数的位置在所有不带星号的参数的前面 ... ruby 会先满足不带星号的参数 ... 把 2 交给 w2 ,把 1 交给 w1,因为我们只提供了两个参数值 ... 所以就不剩下什么东西了 .. 这样 w 这个参数就没有值了 ...

方法的可选参数《 Ruby 语言 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点