Литерал комплексного числа в Go
Литерал пишут двумя числами, а второе
заканчивают буквой i. Между частями
стоит знак плюс, хотя в записи можно обойтись
и без него, если мнимая часть отрицательная.
Буква i показывает, что следующее
число относится к мнимой стороне, а не к
обычной сумме двух целых.
Такая запись удобна, когда обе части известны сразу и их не нужно собирать из переменных. Знак минус перед мнимой частью меняет знак только у второго числа, вещественная часть остается как написана слева от знака сложения.
Запишем простой литерал в переменную и посмотрим тип:
z := 1 + 2i
fmt.Printf("%T\n", z)
При коротком объявлении без явного типа
литерал с буквой i дает complex128:
широкий вариант хранения для комплексного
значения. Узкий complex64 для литерала
задают явно через тип переменной или приведение,
иначе компилятор выберет широкий тип.
Явно укажем узкий тип при объявлении:
var w complex64 = 3 + 4i
fmt.Printf("%T\n", w)
Дано число:
z := 5 + 6i
Запишите, какой тип получит z при
коротком объявлении.
Даны части 2 и 7. Объявите
переменную узкого типа литералом 2+7i
и выведите ее тип через форматирование.
Дан следующий код:
a := 4 - 3i
b := 4 + -3i
Скажите, совпадут ли значения a и b
при сравнении.