Что делает оператор asterisk в Go

«Что делает оператор asterisk в Go» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go оператор * (астериск) имеет два основных применения:

  1. Указатель (pointer) - объявляет переменную как указатель на тип:
var x int = 10
var p *int = &x // p - указатель на x
fmt.Println(*p) // 10 (разыменование)
  1. Умножение чисел:
result := 5 * 3 // 15

Также * используется:

  • В сигнатурах функций для указания, что параметр передаётся по указателю
  • В типах для указания на slice/array указателей: []*int
  • В структурах для embedded-полей указателей

Важно: в отличие от C, в Go нет pointer arithmetic (арифметики указателей).