YARD как документировать @param массива<Массив>

#ruby #rdoc #yard

#ruby #rdoc #yard

Вопрос:

Допустим, у меня есть следующая функция:

 @param foo [Array<String>]
def recursive_split(foo)
  bar = []
  foo.each do |elem|
    bar.append(elem.split(''))
  end
  bar
end
 

Как мне документировать с @return помощью тега yard, что мое возвращаемое значение представляет собой массив массивов строк? Это @return [Array<Array<String>>] правильный способ сделать это?

Ответ №1:

Документы не настолько конкретны, но спецификаторы типов рекурсивны, поэтому X in Array<X> может быть любым списком допустимых типов, поэтому эти:

 Array<String>
Array<String, Symbol>
Array<Array<String, Symbol, #m>>
Array<String, Array<#m>>
...
 

все допустимы.

Онлайн-анализатор типов, вероятно, самый простой способ проверить. Это говорит Array<Array<String>> о том, что:

массив (массив (строк))