gpt4 book ai didi

ruby - 如何处理 Ruby 中恰好是关键字的关键字参数?

转载 作者:数据小太阳 更新时间:2023-10-29 07:14:08 25 4
gpt4 key购买 nike

给定以下带有两个关键字参数 beginend 的方法:

def make_range(begin: 0, end: -1)
# ...
end

我可以毫无问题地调用这个方法:

make_range(begin: 2, end: 4)

但是我如何在实现方法时使用关键字参数,因为两者恰好都是 Ruby keywords

这显然行不通:

def make_range(begin: 0, end: -1)
begin..end
end

请注意,这只是一个示例,该问题适用于所有关键字,而不仅仅是 beginend

最佳答案

简单的解决方案

请查找其他变量名。 (例如 minmaxrange_beginrange_end)

复杂的解决方案

局部变量获取

您可以使用 binding.local_variable_get :

def make_range(begin: 0, end: 10)
(binding.local_variable_get(:begin)..binding.local_variable_get(:end))
end

p make_range(begin: 10, end: 20)
#=> 10..20

关键字参数/哈希参数

您还可以使用 keyword arguments .

def make_range(**params)
(params.fetch(:begin, 0)..params.fetch(:end, 10))
end

p make_range
#=> 0..10
p make_range(begin: 5)
#=> 5..10
p make_range(end: 5)
#=> 0..5
p make_range(begin: 10, end: 20)
#=> 10..20

关于ruby - 如何处理 Ruby 中恰好是关键字的关键字参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41804742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com