Функция 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 — это пустая строка; а для boolean — false.
Задание
ЛегкоНапишите программу, которая принимает ввод от пользователя и выполняет следующее:
- Создает указатель типа int с помощью функции new().
- Выводит значение по умолчанию указателя.
- Присваивает значение, введенное пользователем, этому указателю.
- Выводит значение указателя после присваивания.
Попробуйте сами
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
1Введение
Введение4Реализация функций strings в Go
Строки в GoФункция JoinФункция ContainsФункция IndexЗадание на повторение №1