Golang задачи с собеседований
4.59K subscribers
486 photos
6 videos
12 files
254 links
Задачи, тесты и теоретические вопросы по Go. Так же по gin, grpc, горутинах, архитектуре api и http стэку.

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
加入频道
Выражения, которые относятся к ячейке памяти, называются выражениями «rvalue».
Anonymous Quiz
45%
Да
55%
Нет
Сработает ли код - a, b = b, a?
Anonymous Quiz
84%
Да
16%
Нет
Объяснение к посту выше 👆
Да, такой код используется чтобы поменять местами два значения. Операция подмены в Go защищена от побочных эффектов так как назначаемые значения гарантированно хранятся во временных переменных перед началом фактического присвоения, поэтому порядок не имеет значения.
В каком из следующих методов передачи параметров изменения, внесенные в параметр внутри функции, не влияют на аргумент?
Anonymous Quiz
78%
вызов по значению.
9%
вызов по ссылке
6%
оба вышеуказанные
7%
ничего из вышеперечисленного.м
Какой вариант объявления переменной не скомпилируется?
Anonymous Quiz
10%
var p = 99
79%
var p := 99
3%
p := 99
8%
все варианты скомпилируются
Что выведет код?
Anonymous Quiz
38%
78
37%
68
6%
86
19%
76
Какая строка приведет к ошибке компиляции?
Anonymous Quiz
12%
3
37%
6
20%
7
14%
8
18%
Ошибок нет
Можно ли безопасно конвертировать x в тип IntPtr?
Anonymous Quiz
8%
Не уверен
50%
Можно
22%
Нельзя
5%
Пойду проверю
16%
Дайте объяснение
👆Объяснение к предыдущему вопросу

👨🏻‍💻 Можно, тогда функция будет выглядеть вот так:

func convert(x MyIntPtr) (y IntPtr) {
a := (*MyInt)(x)
b := (*int)(a)
y = IntPtr(b)

return y
}
Вариант с помощью unsafe:

func convert(x MyIntPtr) (y IntPtr) {
y = IntPtr(unsafe.Pointer(x))
return
}

Golang задачи с собеседований