以下这个例子,只有一个星号,
def test1(*, b) puts "输出#{b}" end test(3, 4, 5) => b = 5,*号参数表示接受一个变长参数, 它会保证b参数,获取一个值,其他全归*这个参数所有。
**双星号参数表示一个可选的hash,它只能是最后一个参数,
class A def initialize(*, b, **x) puts "输出#{b}" p x end end class B < A def initialize(a, b, x2: 44, **x) super end end a = A.new(3, 5, 7, 8, cc: 88) b = B.new(4, 5, acc: 88)