Введение в комплексные числа в Go
Комплексное число хранит две части: вещественную и мнимую. Вещественная часть ведет себя как обычное дробное число, а мнимая связана с множителем на особую единицу. В выражениях обе части участвуют вместе, но их можно смотреть отдельно, когда нужно прочитать или изменить только одну сторону значения.
В языке для таких значений есть встроенные типы, литерал и несколько команд без подключения дополнительных пакетов. Сложение и умножение записывают теми же знаками, что и для обычных чисел, а правила приведения типов похожи на работу с дробными величинами разной точности.
Комплексные значения реже встречаются в бытовом коде, но они удобны там, где одновременно нужны два связанных дробных параметра, например при описании колебаний или преобразований сигнала. Понимание двух частей и двух ширин типа помогает читать такой код без путаницы в размерах хранилища.
В этом разделе сначала разберем запись литерала, широкий и узкий тип, сборку числа из двух дробных частей и обратный разбор. В конце закрепим тему на задачах с вещественной и мнимой стороной значения.