К каким типам можно перейти signal.Ignore(sig os.Signal)
? Если os.Signal
есть interface { String() string }
, то может показаться, что это что-то с методом String() string
, что неверно. Добавляя в интерфейс «бесполезные» Signal()
, набор типов, которые можно использовать, сужается.
Например, если вы используете gopls для поиска типов, реализующих интерфейс, добавление «бесполезного» метода приведет к тому, что он найдет нужные типы, как правило, без ложных срабатываний.
Этот механизм добавления фиктивного метода для ограничения типов не идеален, но это разумный прагматичный выбор.
Это просто для того, чтобы вы не могли передать какое-либо несигнальное значение, имеющее «общий» метод
String() string
, где на самом деле необходим сигнал.