![](/img/trans.png)
[英]Mixing keyword argument and arguments with default values duplicates the hash?
[英]YARD for keyword arguments with default hash
我有一个看起来像这样的方法:
def get_endpoint(params: {})
end
我希望这个方法的调用者能够传入一些可选参数。
我想编写 YARD 文档来支持这一点,如果我不使用关键字参数,我将使用@option
声明。
但是,YARD 自己的文档说:
注意:对于关键字参数,使用@param,而不是@option。
所以我试过:
# @param params [Hash] options to be used in request
# @param date [String] date in YYYYMMDD
# @param start_time [Integer] start_time in Epoch
这失败了,因为 YARD 只能看到我正在使用的params
关键字参数。 确切的失败是:
@param tag has unknown parameter name: date
然后我尝试使用@option
语法替换为param
关键字:
# @param params [Hash] options to be used in request
# @param params [String] :date in YYYYMMDD
# @param params [Integer] :start_time in Epoch
这会导致不同的错误:
@param tag has duplicate parameter name: params
理想情况下,我想用此方法的用户可以使用的 3 或 4 个选项来描述params
哈希。 有没有办法做到这一点?
该签名不使用:date
或:start_time
关键字参数。 这些参数的关键字参数将被指定为:
def get_endpoint(date:, start_time:)
@option
专门用于指定将包含在您的案例params
的 options Hash
中的选项。 由于您对params
使用关键字参数,因此我建议为此添加@param
标签,以清楚地识别关键字参数。 例如:
@param params [Hash] options to be used in request
@option params [String] :date in YYYYMMDD
@option params [Integer] :start_time in Epoch
@options
文档以防万一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.