5、Ruby编程:灵活处理参数与代码块的艺术

Ruby参数与代码块艺术

Ruby编程:灵活处理参数与代码块的艺术

1. Ruby方法参数处理的灵活性

在思考方法的参数时,不同人有不同的设想。有人会想到类似数学函数 f(x,y,z) 那样,每个参数都必要且顺序重要;也有人会想到像 create_person( first_name: "Joe", last_name: "Frasier") 这样处理配置数据的关键字参数。Ruby在处理方法参数时提供了极大的灵活性,这虽可能带来一些困惑,但也是构建出色API的关键。

下面是几种不同的参数处理方式示例:

# 标准顺序参数
def distance(x1,y1,x2,y2)
  Math.hypot(x2 - x1, y2 - y1)
end

# 带可选参数的顺序参数
def load_file(name,mode="rb")
  File.open(name,mode)
end

# 伪关键字参数
def story(options)
  "#{options[:person]} went to town, riding on a #{options[:animal]}"
end

# 将参数视为数组
def distance2(*points)
  distance(*points.flatten)
end

调用这些方法可以看到它们的实际效果:

>> distance(3,3,4,5)
=> 2.23606797749979
>> load_f
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值