Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
102 - Telegram Web
Telegram Web
🔥 Шпаргалка по структурам данных в Go

Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею.

Но курсы по алгоритмам и структурам данных дают примеры или на псевдокоде, или на С++. Ещё эталонные решения задач написаны зачастую на С++. Готовясь к собеседованию, составил шпаргалку библиотек — аналогов контейнеров STL, что бы не тратить драгоценное время на поиск.

Чат: @golang_talks

Подробнее: https://m.habr.com/ru/post/456194/
💩10👍6🔥1
Вопрос с собеседования. Какую форму преобразования типов поддерживает Go? Преобразуйте целое число в число с плавающей запятой.

Ответ завтра.

#собеседование
Ответ на «Какую форму преобразования типов поддерживает Go? Преобразуйте целое число в число с плавающей запятой.»

Go поддерживает явные преобразования типов, соответствуя требованиям строгой типизации.

i := 55      //int

j := 67.8 //float64

sum := i + int(j) //j преобразуется в int

#собеседование
👍16💩10
Задача. Переверните порядок элементов в срезе.
Реализуйте функцию reverse, получающую срез целых чисел и разворачивающую его без использования временного среза.

Код с решением будет завтра.

#задача
Ответ на «Переверните порядок элементов в срезе.»

package main
import "fmt"
func reverse(sw []int) {
for a, b := 0, len(sw)-1; a < b; a, b = a+1, b-1 {
sw[a], sw[b] = sw[b], sw[a]
}
}
func main() {
x := []int{3, 2, 1}
reverse(x)
fmt.Println(x)
}

Цикл for меняет местами значения каждого элемента среза. Значения будут следовать слева направо, и в итоге все элементы будут развернуты.

#задача
👍6
Чат-бот под несколько месенджеров

💎 Чат
: @golang_talks

Привет, я Паша, руковожу эксплуатацией инфраструктуры крупного хайлоад-проекта. Хочу поделиться опытом разработки бота на Golang для различных мессенджеров.

Читать далее
👍3
Вопрос с собеседования. Расскажите об интерфейсах в Go. Чем они являются и как работают?

Ответ завтра.

#собеседование
👍13🔥3
Ответ на «Расскажите об интерфейсах в Go. Чем они являются и как работают?»

Интерфейсы — это особый тип в Go, который определяет набор сигнатур методов, но не представляет реализации. Значения типа interface могут содержать любое значение, реализующее эти методы.

Интерфейсы, по сути, действуют как плейсхолдеры для методов, которые будут иметь несколько реализаций в зависимости от того, какой объект их использует.

Например, можно реализовать интерфейс geometry, который будет утверждать, что все фигуры, использующие этот интерфейс, должны реализовывать area() и perim().

type geometry interface {
area() float64
perim() float64
}

#собеседование
👎9🔥3👍1
Какой будет результат выполнения кода?
Anonymous Quiz
16%
0.0
29%
Ошибка компиляции
56%
%
😁15👍4
Какой будет результат выполнения кода?
Anonymous Quiz
34%
18
46%
5
19%
Ошибка компиляции
🔥3🤮2👏1
👍7
👍2
Какой будет результат выполнения кода?
Anonymous Quiz
22%
3
45%
4
33%
Ошибка компиляции
🤔11👍3👏3🤮2
Задача. Поменяйте местами значения переменных без использования промежуточной переменной.

Реализуйте swap(), обменивающую значения двух переменных, не используя третью переменную.

Код с решением будет завтра.

#задача
👍1
Ответ на «Поменяйте местами значения переменных без использования промежуточной переменной.»

Во многих других языках над этой задачей придется подумать, в Go же реализовать ее просто.

package main
import "fmt"
func main() {
fmt.Println(swap())
}
func swap() []int {
a, b := 15, 10
b, a = a, b
return []int{a, b}
}

Достаточно просто включить инструкцию b, a = a, b, на чьи данные будет ссылаться переменная, не взаимодействуя ни с одним из ее значений.

#задача
💩14🔥7👍3🤮3
Наш чат для обсуждения задач: https://www.tgoop.com/+UA9kQbQdpFxmZGY6
Вопрос с собеседования. Можно ли вернуть из функции несколько значений?

Ответ завтра.

#собеседование
😁33👍4👎4
Ответ на «Можно ли вернуть из функции несколько значений?»

Да. Функции в Go возвращают несколько значений в инструкции return, разделяя их запятыми.

package main
import "fmt"
func main() {
sum := 0
for i := 0; i < 10; i++ {
sum += i
}
fmt.Println(sum)
}

#собеседование
💩28😁18👍2😢2
2025/07/14 16:53:48
Back to Top
HTML Embed Code: