刚刚接触Ruby语言不久的朋友可能对于这种新的编写方式有些不太适应。其实只要我们熟练掌握了诸如Ruby函数参数传递这些基本知识,大致就能熟悉其编写特点。#t#
Ruby函数参数传递代码示例:
- def f (a,b)
- puts a,b;
- end
- f([2,3]) # 出错
- f(*[2,3])
输出:
# 2
# 3
- def k (a={},*b)
- puts a.inspect,b.inspect;
- end
- k(5,2=>3,1=>2])
输出: 5
- [{1=>2, 3=>3}]
- k(1=>3
输出: {1=>3}
[]
Ruby函数参数传递中,最右边的散hash(2=>3,1=>2 就是散hash)会被当成一个参数。
函数定义中,最右边的*b,是取调用者中的剩余参数(这些参数放到一个b数组中); 如果没有剩余参数,那么b 为[]