gpt4 book ai didi

Ruby 方法名称插值

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

我正在尝试通过迭代常量哈希来减少我的一个 Ruby 类中的代码量,以便以更少的编码量生成所有需要的方法。

这是我的代码(由于我是 Ruby 的新手,请随时添加其他指针):

ENTRY_HASHES = {
"disbursement" => {
:description => TRANSACTION_DESCRIPTIONS[:disbursement]
}
}

public

ENTRY_HASHES.each do |key, value|
def "#{value}?(amount)"
single_entry(
ENTRY_HASHES[:description]
amount
)

@entry.save
end
end

我对上面的期望是这样的(对于 ENTRY_HASHES 中的每个哈希):

def disbursement?(value)
single_entry(
"XXXXX",
amount
)
end

相反,我看到了语法错误。任何帮助将不胜感激!

最佳答案

这是给你的例子:

ENTRY_HASHES = {
"disbursement" => {
:description => 'smth'
}
}

ENTRY_HASHES.each do |key, value|
define_method("#{key}?") do |argument|
puts "#{key}? method called with #{argument}"
puts "you can use hash values: #{value} of course"
end
end

disbursement?('my_arg')

它会输出:

disbursement? method called with my_arg
you can use hash values: {:description=>"smth"} of course

关于Ruby 方法名称插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27708255/

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