Menu
Coddy logo textTech

Функция New

Урок 3 из 19 курса Функции и указатели в Golang на Coddy.

В прошлых уроках мы узнали, что переменные — это объекты или области в памяти с именем, которое указывает на эту область.

В Go есть функция, которая создает неименованную область в памяти, и мы делаем это с помощью функции new(). Синтаксис следующий:

coddy := new(string)

Здесь мы создали объект с именем coddy и типом string, а функция new() возвращает указатель на этот объект (область).

Если мы выведем имя, мы получим адрес этой области в памяти:

fmt.Println("Value:", coddy)

Результат будет следующим:

Value: 0xc000014070

Мы можем переназначить значение этому указателю следующим образом:

coddy := new(string)
*coddy = "Learn To Code with coddy"
fmt.Println("Value:", *coddy)

Результат будет следующим:

Value: Learn To Code with coddy

Обратите внимание, что когда мы создаем указатели с помощью функции new(), значение по умолчанию не равно nil. Оно зависит от типа, так же как и у переменных. Если тип — int, значение по умолчанию — 0; для string — это пустая строка; а для booleanfalse.

challenge icon

Задание

Легко

Напишите программу, которая принимает ввод от пользователя и выполняет следующее:

  1. Создает указатель типа int с помощью функции new().
  2. Выводит значение по умолчанию указателя.
  3. Присваивает значение, введенное пользователем, этому указателю.
  4. Выводит значение указателя после присваивания.

Попробуйте сами

package main

import (
	"fmt"
)

func main() {
	// Получите ввод от пользователя. Не меняйте это!
	var num int
	fmt.Scanln(&num)

	// Создайте указатель типа int с помощью функции new().
 

	// Выводит значение указателя по умолчанию.
    fmt.Println("Default value of the pointer:", ?)

	// Присваивает значение, введенное пользователем, этому указателю
 

	// Выводит значение указателя после присваивания.
    fmt.Println("Value of the pointer after assignment:", ?)
}

Все уроки раздела Функции и указатели в Golang