Darcy Tang’s Blog

记录一点编程心得

Ruby2.0关键字参数使用小记

Ruby2.0发布了,于是下来试试手。 下载了源码包,直接./configure && make && make install安装,没加特殊的flag。

安装过程中出现了几个问题:

  • 系统时间不对,在make的时候检查文件时间戳出错,不断的重复执行configure,使用ntp服务同步时间解决
  • 在pry环境中不能使用上下方向键,错误信息是rb-readline有问题,在pry的 Github Issues 里面找到问题,是rb-readline版本问题,重新安装最新版本解决

然后试用了几个2.0的新特性,对我来说关键字参数最适用,其他几个RefinementsLazy enumerablesModule prepending平时元编程和函数编程用得不多,暂时用不上。

对于关键字参数,Python里面已经有了,没什么好说的。

Ruby中关键字参数的两个要点:

  • 位置:定义的时候只能是 a, *b, c: 1, **d, &e 的顺序
  • 使用:调用时必须指明参数名称。这点和Python不同,Python可以根据参数的顺序来推断。

对于如下定义的函数

1
2
3
def func(a: 1, b: 2, c: 3)
  print a,b,c
end

调用时使用func(4,5,6)会提示wrong number of arguments, 只能是func(a: 4, b: 5, c: 6)的形式,这个时候顺序可以随意了。

Comments