Я хотел бы объявить массив объектов с точным классом объекта в rubydoc либо для параметра, либо для переменной, либо для @return. (это должен быть RDoc? ..)
Основная причина, по которой RubyMine (или другая IDE) правильно работает для автозаполнения, интерактивных методов, рефакторинга и т. д.
В PHP будет выглядеть так:
/**
* @param array $items
* @param Filter[] $filters
* @return Result[]
*/
function filter($items, $filters) {}
Я просто не уверен, может ли это работать аналогичным образом в RubyMine:
##
# @param [Array] items
# @param [Filter[]] filters
# @return [ResultClass[]]
#
def filter(items, filters); end
Дополнительный пример на PHP:
class My
{
public $name;
}
/**
* @return My[]
*/
function foo()
{
// Similar code here
//return [new My(), new My()];
}
function show()
{
foreach (foo() as $item) {
// IDE will make autocomplete for My::$name
echo "$item->name\n";
}
}

class TheClass
# @param items [Array]
# @param filters [Array<Filter>]
# @return [Array<TheClass>]
def filter(items, filters); end
end
Как указано в документации Ярлыки.
я прав, # @param filters [Filter] в вашем примере означает просто filters == Filter?
@Kirby имеет следующую форму: [@param] [имя параметра функции] [тип параметра функции]
И, чтобы уточнить, в @return это означает [TheClass.new, TheClass.new, ...], не так ли?
@Kirby означает массив экземпляров TheClass
@param name type - это абсолютно понятно. Я имею в виду, что в моем примере фильтры предполагают массив с объектами Filter.
@AndrewDeineko, хорошо, понял. Это определенно то, что мне нужно. Спасибо!
@Kirby Я неправильно понял, если filters - это массив, то он должен быть @param filters [Array]. Я думаю, вы можете указать класс этих объектов с помощью @param filters [Array<Filter>]
IIRC,
@return [Array<My>]должен работать.