🔥 Шпаргалка по структурам данных в Go
Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею.
Но курсы по алгоритмам и структурам данных дают примеры или на псевдокоде, или на С++. Ещё эталонные решения задач написаны зачастую на С++. Готовясь к собеседованию, составил шпаргалку библиотек — аналогов контейнеров STL, что бы не тратить драгоценное время на поиск.
Чат: @golang_talks
Подробнее: https://m.habr.com/ru/post/456194/
Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею.
Но курсы по алгоритмам и структурам данных дают примеры или на псевдокоде, или на С++. Ещё эталонные решения задач написаны зачастую на С++. Готовясь к собеседованию, составил шпаргалку библиотек — аналогов контейнеров STL, что бы не тратить драгоценное время на поиск.
Чат: @golang_talks
Подробнее: https://m.habr.com/ru/post/456194/
💩10👍6🔥1
Вопрос с собеседования. Какую форму преобразования типов поддерживает Go? Преобразуйте целое число в число с плавающей запятой.
Ответ завтра.
#собеседование
Ответ завтра.
#собеседование
Ответ на «Какую форму преобразования типов поддерживает 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 для различных мессенджеров.
Читать далее
💎 Чат: @golang_talks
Привет, я Паша, руковожу эксплуатацией инфраструктуры крупного хайлоад-проекта. Хочу поделиться опытом разработки бота на Golang для различных мессенджеров.
Читать далее
👍3
Вопрос с собеседования. Расскажите об интерфейсах в Go. Чем они являются и как работают?
Ответ завтра.
#собеседование
Ответ завтра.
#собеседование
👍13🔥3
Ответ на «Расскажите об интерфейсах в Go. Чем они являются и как работают?»
Интерфейсы — это особый тип в Go, который определяет набор сигнатур методов, но не представляет реализации. Значения типа
Интерфейсы, по сути, действуют как плейсхолдеры для методов, которые будут иметь несколько реализаций в зависимости от того, какой объект их использует.
Например, можно реализовать интерфейс
Интерфейсы — это особый тип в Go, который определяет набор сигнатур методов, но не представляет реализации. Значения типа
interface
могут содержать любое значение, реализующее эти методы.Интерфейсы, по сути, действуют как плейсхолдеры для методов, которые будут иметь несколько реализаций в зависимости от того, какой объект их использует.
Например, можно реализовать интерфейс
geometry
, который будет утверждать, что все фигуры, использующие этот интерфейс, должны реализовывать area()
и perim()
.type geometry interface {#собеседование
area() float64
perim() float64
}
👎9🔥3👍1
😁15👍4
🔥3🤮2👏1
🤔11👍3👏3🤮2
Задача. Поменяйте местами значения переменных без использования промежуточной переменной.
Реализуйте
Код с решением будет завтра.
#задача
Реализуйте
swap()
, обменивающую значения двух переменных, не используя третью переменную.Код с решением будет завтра.
#задача
👍1
Ответ на «Поменяйте местами значения переменных без использования промежуточной переменной.»
Во многих других языках над этой задачей придется подумать, в Go же реализовать ее просто.
#задача
Во многих других языках над этой задачей придется подумать, в 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
😁33👍4👎4
Ответ на «Можно ли вернуть из функции несколько значений?»
Да. Функции в Go возвращают несколько значений в инструкции
Да. Функции в 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