【发布时间】:2010-10-17 01:01:03
【问题描述】:
require 'pp'
p *1..10
这会打印出 1-10。为什么这么简洁?你还能用它做什么?
【问题讨论】:
require 'pp'
p *1..10
这会打印出 1-10。为什么这么简洁?你还能用它做什么?
【问题讨论】:
嗯:
require pp 导入漂亮的打印功能p 是一种带有可变参数的漂亮打印方法,可以漂亮打印每个参数* 表示“将参数扩展为可变参数”而不是将其视为单个参数这是否充分解释了它?如果不是,请详细说明哪一点令人困惑。
【讨论】:
它是“splat”运算符。可用于分解数组和范围,并在赋值过程中收集值。
这里收集分配中的值:
a, *b = 1,2,3,4
=> a = 1
b = [2,3,4]
在此示例中,内部数组([3,4] 之一)中的值被分解并收集到包含数组中:
a = [1,2, *[3,4]]
=> a = [1,2,3,4]
您可以定义将参数收集到数组中的函数:
def foo(*args)
p args
end
foo(1,2,"three",4)
=> [1,2,"three",4]
【讨论】: