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

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
Git Repository Management in 30 Days.pdf
29.7 MB
📔 Title: Git Repository Management in 30 Days

#book #Git #EN

🌐 Lang.: English
🧔 Author: Sumit Jaiswal
🕘 Year: 2023
📑 Pages: 290
#️⃣ ISBN: 978-93-55518-071

📝 Description: Это пошаговое руководство для разработчиков, желающих овладеть искусством управления репозиторием Git. Книга охватывает все, начиная с основ работы с Git и заканчивая такими продвинутыми темами, как ветвление, слияние, ребазинг и разрешение конфликтов. Книга поможет вам научиться создавать, управлять и сотрудничать с репозиториями Git. Кроме того, она научит вас использовать команды, инструменты и рабочие процессы Git для повышения качества кода и оптимизации процесса разработки.

@bzd_channel
👨🏻‍💻 Реальный вопрос от реального человека

Помогите найти ошибку в решении задачи на GO

Я пытаюсь решить на Go эту задачу:

Маша создала массив из n чисел от 1 до n. И какие-то из них поменяла на другие, также от 1 до n. Напишите функцию FindMissingValues(nums []int) []int, которая принимает данный массив и возвращает массив, содержащий числа, которые пропали, в порядке возрастания.

Я не особо понимаю что именно в алгоритме у меня не так. Выводит 3 4 5 6, хотя должно выводить 5 6.

package main

import (
"fmt"
"sort"
)

func FindMissingValues(nums []int) []int {
n := len(nums)
missingValues := make([]int, 0)

expectedValues := make([]int, n)
for i := 0; i < n; i++ {
expectedValues[i] = i + 1
}

sort.Ints(nums)
sort.Ints(expectedValues)

for i := 0; i < n; i++ {
check := false
for j := 0; j < n; j++ {
if nums[i] == expectedValues[i] {
check = true
}
}
if !check {
missingValues = append(missingValues, expectedValues[i])
}
}
fmt.Println(nums)
return missingValues
}

func main() {
fmt.Println(FindMissingValues([]int{4, 3, 2, 7, 8, 2, 3, 1}))

}

Golang задачи с собеседований
👨🏻‍💻 Реальный вопрос от реального человека

Почему не работает import "github.com/go-gl/gl/v4.1-core/gl"
Всё корректно установилось в GOPATH, однако при импорте VScode ругается и выдаёт две ошибки.

could not import github.com/go-gl/gl/v4.1-core/gl (no required module provides package "github.com/go-gl/gl/v4.1-core/gl")

error while importing github.com/go-gl/gl/v4.1-core/gl: build constraints exclude all Go files in D:\GoEnv\pkg\mod\github.com\go-gl\gl@v0.0.0-20211210172815-726fda9656d6\v4.1-core\gl

Вот так выглядит код в go.mod

module openGL

go 1.21.1

require (
github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6 // indirect
github.com/go-gl/glfw v0.0.0-20221017161538-93cebf72946b // indirect
)

Это код из go.sum

github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6 h1:zDw5v7qm4yH7N8C8uWd+8Ii9rROdgWxQuGoJ9WDXxfk=
github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6/go.mod h1:9YTyiznxEY1fVinfM7RvRcjRHbw2xLBJ3AAGIT0I4Nw=
github.com/go-gl/glfw v0.0.0-20221017161538-93cebf72946b h1:2hdUMUOJuLQkhaPAwoyOeSzoaBydYEkXkBEuqDuDBfg=
github.com/go-gl/glfw v0.0.0-20221017161538-93cebf72946b/go.mod h1:wyvWpaEu9B/VQiV1jsPs7Mha9I7yto/HqIBw197ZAzk=

Golang задачи с собеседований
Как вывести 'некорректный вод' ,если ввод будет, допустим, -1 7 7?

package main

import "fmt"

func main() {
var a int
var b int
var c int
fmt.Scan(&a, &b, &c)
if a == c && a == b && c == b {
fmt.Println("Все числа равны")
} else if a != c && a != b && c != b {
fmt.Println("Все числа разные")
} else if a == c || a == b || b == c {
fmt.Println("Два числа равны")
} else {
fmt.Println("Некорректный ввод")
}
}

условия

Все числа равны, если все три числа равны.

Два числа равны, если любые два числа из трех равны.

Все числа разные, если все три введенных числа различаются.

Если во входных данных есть ошибка, например, введены отрицательные числа, то программа должна выводить сообщение Некорректный ввод.


Golang задачи с собеседований
panic: runtime error: index out of range [20] with length 14

package main

import "errors"

func GetCharacterAtPosition(str string, position int) (rune, error) {
if position < 0 || position >= len(str) {
return 0, errors.New("position out of range")
}
return []rune(str)[position], nil
}
Выдает ошибку:panic: runtime error: index out of range [20] with length 14 Как исправить?

Golang задачи с собеседований
👨🏻‍💻 Реальный вопрос от реального человека

Я пытаюсь решить задачу на интерфейсы в GO, но не понимаю что именно у меня не так

package main

import (
"fmt"
"math"
)

type Shape interface {
Area(radius float64) float64
Area(width float64, height float64) float64 #тут у меня ошибка дубликата функции, но я не понимаю как вызывать функции с помощью одинакового имени, если у них не будет одинакового имени в интерфейсе
}

func (s Circle) Area() float64 {
return math.Pi * s.radius * s.radius
}

func (s Rectangle) Area() float64 {
return s.width * s.height
}

type Rectangle struct {
width, height float64
}
type Circle struct {
radius float64
}

func main() {
figure_1 := Circle{radius: 1.0}
fmt.Println(figure_1.Area())
figure_2 := Rectangle{width: 57.2, height: 10.2}
fmt.Println(figure_2.Area())
}

Golang задачи с собеседований
👨🏻‍💻Как сделать так чтоб бот отправлял сообщения в определенный топик?

На golang telebot v3. У треда есть свой chat id?

Golang задачи с собеседований
Почему данная функция в GO при вводе в "1 1 1" не выдает ничего?

Почему данная функция в GO при вводе в "1 1 1" не выдает ничего?

package main

import (
"fmt"
"math"
)

func SqRoots() {
var a, b, c float64
fmt.Scan(&a, &b, &c)
D := math.Sqrt(b*b - 4*a*c)
if D < 0 {
fmt.Println("0 0")
}
if D == 0 {
fmt.Println((-b + D) / 2 * a)
}
if D > 0 {
fmt.Println((-b-D)/2*a, (-b+D)/2*a)
}
}
func main() {
SqRoots()
}

Golang задачи с собеседований
Ошибка "multiple-value in single-value context"

В коде:

fmt.Printf("Число фиббоначи для %v: %v", userNum, Fibbonachi(userNum, true))

Функция Fibbonachi получает 2 значения (1-е значение - число, второе способ расчета), и возвращает 2 значения (1-е значение - ответ, 2-е значение - ошибка или nil).

Получаю ошибку

multiple-value Fibbonachi(userNum, true) (value of type (int, error)) in single-value context

что логично, но как мне вывести через Printf только первое возвращаемое значение без ошибки?

Golang задачи с собеседований
Странная ошибка в GO

package main

import (
"fmt"
)

func main() {
var a int
fmt.Scanln(&a)
if a%2 == 0 && a < 0 {
fmt.Println("Число отрицательное и четное")
} else if a%2 == 1 && a < 0 {
fmt.Println("Число отрицательное и нечетное")
} else if a%2 == 0 && a >= 0 {
fmt.Println("Число положительное и четное")
} else if a%2 == 1 && a >= 0 {
fmt.Println("Число положительное и нечетное")
}
}

По какой-то причине последний if не работает, и на запрос -17 программа ничего не выводит.

Golang задачи с собеседований
Не работает url.Parse

Простой код:

_, err := url.Parse("555")
if err != nil {
panic(err)
}
Но не уходит на ошибку, почему?

Может я не правильно понимаю работу url.Parse - я думал что если передаваемое значение не url - то в err - должна быть какая-то ошибка...


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