gpt4 book ai didi

ruby - 在 ruby​​ 中将子类方法作为函数参数传递

转载 作者:太空宇宙 更新时间:2023-11-03 18:14:13 25 4
gpt4 key购买 nike

有一个 Commerce 类,它的构造函数将初始化一个名为 commerce 的对象。 LineItem 是 Commerce 类中的一个类。 LineItem 类有一个名为“ssm”的方法。当调用此方法“ssm”时,它将初始化另一个名为 SSM 的类的对象。在我们的问题中,我们需要将“ssm”方法作为另一个测试类中的函数参数传递。

 def autoUpdate(docNum, type, varName, value)
type = method(Commerce::LineItem:ssm)
commerce.line_item.type(varName).set(value)
end

在函数参数“type”的位置,应将其替换为类 LineItem 中的不同方法名称。但是上面的函数 autoUpdate 会抛出一个错误。如何将子类方法作为函数参数传递给另一个类。

最佳答案

我认为你所做的可能是一个错误和糟糕的设计,但对于你的具体问题,如果你真的想要一个方法对象,我认为你想要:

type_method = Commerce::LineItem.instance_method(:ssm)

然后您可以通过以下方式调用它:

bound_type_method = comerce.line_item.bind(type_method).call(varName).set(value)

但这没有多大意义。您也可以只传递符号 method_name = :ssm,然后调用 commerce.line_item.type.send(method_name, varName).set(value)

虽然这仍然是一团糟,但这是可怕的代码。

这里似乎还涉及“子类”。

关于ruby - 在 ruby​​ 中将子类方法作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28784423/

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