Этот комментарий создается кодом go/printer
на основе переданного ему AST. Некоторые из узлов AST имеют поле , которое помечает их как неполные, и это поле используется принтером для принятия решения , печатать или нет этот комментарий. Однако у принтера нет возможности узнать правила и причины того, почему это поле было установлено в true или false, и поэтому по соглашению предполагается, что это было сделано фильтром, наиболее распространенным из которых является exportFilter
следовательно, язык.
Поле Incomplete
экспортируется и может быть установлено в значение true / false любым, кто имеет доступ к AST. Вы можете самостоятельно пройти AST, установив для каждого поля Incomplete значение true, оставив узлы нетронутыми, а затем передав AST на принтер, который затем создаст структуры со всеми их полями, экспортированными и не экспортированными, а также этот комментарий.
Godo c фильтрует AST с ast.FileExports
, который по умолчанию удаляет только неэкспортированные узлы, а затем передает AST на принтер. Таким образом, в случае Godo c «фильтрованный» в этом комментарии является синонимом «неэкспортированного».
Ссылка на игровую площадку для иллюстрации поведения принтера.