我有一个记录如下的函数:
##
# Searches for street names in the local address database. Returns a list
# of strings, or invokes the block for each result.
#
# @param [String, Hash] query
#
# Can be:
#
# - A search string with optinal wildcards. Examples:
# - "Bærumsv*"
# - "Fornebuve_en"
#
# @param [Integer] limit
#
# Limits the amount of results. See {#search_street_addresses} for usage
# examples.
#
# @return [Array<String>]
#
# A sorted array of street names.
#
# @yield [street_name] Invokes the block with a street name for each
# result.
#
Run Code Online (Sandbox Code Playgroud)
产生这个结果:

我的问题是文档说该函数需要一个块并且它返回一个值.实际上,该块是可选的.如果提供了块,则为每个结果调用它,函数返回nothing(nil).如果未提供块,则结果将在Array中返回.
我如何在文档中明确说明?有推荐的方法吗?
使用 @overload
##
# Searches for street names in the local address database. Returns a list
# of strings, or invokes the block for each result.
#@overload search_street_names(query, limit: nil)
# @param [String, Hash] query
#
# Can be:
#
# - A search string with optinal wildcards. Examples:
# - "Bærumsv*"
# - "Fornebuve_en"
#
# @param [Integer] limit
#
# Limits the amount of results. See {#search_street_addresses} for usage
# examples.
#
# @return [Array<String>]
#
# A sorted array of street names.
#
#@overload search_street_names(query, limit: nil)
# @param [String, Hash] query
#
# Can be:
#
# - A search string with optinal wildcards. Examples:
# - "Bærumsv*"
# - "Fornebuve_en"
#
# @param [Integer] limit
#
# Limits the amount of results. See {#search_street_addresses} for usage
# examples.
#
# @yield [street_name] Invokes the block with a street name for each
# result.
##
Run Code Online (Sandbox Code Playgroud)
返回:

| 归档时间: |
|
| 查看次数: |
959 次 |
| 最近记录: |