Функция new
Функция new выделяет память для значения указанного типа,
инициализирует его нулевым значением и возвращает указатель на это
значение. Первым и единственным параметром функция принимает тип,
для которого нужно выделить память.
Синтаксис
new(T)
Пример
Давайте выделим память для типа int и выведем полученный
указатель:
package main
import "fmt"
func main() {
p := new(int)
fmt.Println(p)
}
Результат выполнения кода:
"0xc00001a0b0"
Пример
Давайте выделим память для типа int и разыменуем указатель,
чтобы увидеть нулевое значение:
package main
import "fmt"
func main() {
p := new(int)
fmt.Println(*p)
}
Результат выполнения кода:
0
Пример
Давайте выделим память для типа string и изменим значение
по указателю:
package main
import "fmt"
func main() {
p := new(string)
*p = "abcde"
fmt.Println(*p)
}
Результат выполнения кода:
"abcde"
Пример
Давайте выделим память для слайса и убедимся, что он инициализируется нулевым значением:
package main
import "fmt"
func main() {
p := new([]string)
fmt.Println(*p)
}
Результат выполнения кода:
[]