9

次のように、可変数の引数を取る関数があります。

def myfun(*args)
  # ...
end

すべての引数は同じ型 ( Symbol) であるため、現在、引数が 1 つしかないかのように関数を文書化して、複数の引数を取ることができると言っています。

# this function doesn’t do anything
# @param [Symbol]: this argument does something, you can add more symbols
#                  if you want
def myfun(*args)
  # ...
end

このケースを処理する組み込みの方法はありますか?

4

2 に答える 2

10

argsはメソッドの内部にあるため、以下は理にかなっていますArrayが、どのパラメーターもそれ自体ではありませんArray

# this function doesn’t do anything
#
# @param [Array<Symbol>] args these arguments do something
# @return [nil]
def myfun(*args)
  # ...
end

*コメントのパラメーター名から が削除されていることに注意してください。これは一貫性を保つためのものです -args は ですが、そうArray*argsはありません。

簡単に検索すると、Yard 独自の .rb ファイル内を含め、このスタイルを使用するかなりの数のプロジェクトが表示されます (たとえば、Verifier クラスの初期化のソースを参照)。ただし、この規則の例はガイドに記載されていません。

于 2014-04-27T20:57:09.897 に答える