gpt4 book ai didi

ruby - 烘干场参数

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

我得到了我认为是相当基本的院子宏用法,其中我有一个散列结构,其中包含多个选项,这些选项在多个函数之间共享。我希望使用一个宏来防止我不得不在所有地方复制这个结构,但它似乎并没有那样工作。

我期望的工作是:

# @macro [new] my_hash
# @param $1 [Hash,Array<Hash>] Inputted my_hash
# @option $1 [String] :a Value for A.
# @option $1 [String] :b Value for B.
# @option $1 [String] :c Value for C.

##
# my_func does stuff
# @macro my_hash h1
def my_func h1
end

##
# other_func does stuff
# @macro my_hash h2
def other_func h2, a, b
end

并正确记录 h1 和 h2。我想我已经发现至少 $1 不能像那样工作而是从函数本身获取但我可以调用两个参数 h1 并在宏中用 h1 替换 $1 但我仍然没有得到我想要的.

http://rubydoc.info/docs/yard/file/docs/Tags.md#macro 中的“定义简单宏”示例将表明我可以做到这一点(请注意,我发现带有 @!macro 的示例和一些没有但似乎都不起作用的示例)。

我对 yard 了解不多,但这行不通吗?我可以做一些类似的事情来实现我的结果吗?是否有调试功能可以解释这一点,因为院子服务器控制台中没有出现错误?

谢谢

最佳答案

正如您已经在宏中指定的那样,它应该为方法的第一个参数进行扩展,而不是在扩展宏时不需要指定它。此外,似乎无法判断要扩展宏的参数。另一件事是在这种情况下您可以跳过 [new] 并且似乎最好使用 @!macro 而不是 @macro

# @!macro my_hash
# @param $1 [Hash,Array<Hash>] Inputted my_hash
# @option $1 [String] :a Value for A.
# @option $1 [String] :b Value for B.
# @option $1 [String] :c Value for C.

##
# my_func does stuff
# @!macro my_hash
def my_func h1
end

##
# other_func does stuff
# @!macro my_hash
def other_func h2, a, b
end

关于ruby - 烘干场参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12310542/

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