Эйч
Эйч
  • Все менторы
Задачи/Go-разработчик/Defer и разница между значениями и указателями

Defer и разница между значениями и указателями

Условие задачи

Необходимо определить, какие значения будут выведены при использовании defer с функциями, принимающими как значения, так и указатели

gofunc main() {
  fmt.Println(test1())
  test3()
}

func test3() {
  var i1 int = 10
  var k = 20
  var i2 *int = &k

  defer printInt("i1", i1)
  defer printInt("i2 as value", *i2)
  defer printIntPointer("i2 as pointer", i2)

  i1 = 1010
  *i2 = 2020
}

func changeI(i *int) {
  *i = 10
}

func printInt(v string, i int) {
  fmt.Printf("%s=%d\n", v, i)
}

func printIntPointer(v string, i *int) {
  fmt.Printf("%s=%d\n", v, *i)
}

Профессия

Go-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта