Wildberries · июль 2024

Тех собес на middle-senior Golang Разработчик в Wildberries

middle-senior Тех собес 5 вопросов 1 задача
1

Go Language

1. Что произойдет при выполнении следующего кода?

func main()  {
    s := "Hello world"
    s[0] = "h"
    fmt.Println(s)
}

2. Объясните работу следующего кода по изменению строки:

package main

import "fmt"

func main() {
    s := "Hello world"
    // Преобразование строки в массив байтов ([]byte)
    bytes := []byte(s)
    // Изменение первого символа на "h"
    bytes[0] = 'h'
    // Преобразование массива байтов обратно в строку
    s = string(bytes)
    fmt.Println(s)
}

3. Каков будет результат выполнения следующего кода с каналами?

func main() {

    ch := make(chan int, 5)
    for i := 0; i <= 4; i++ {
        ch <- i
    }
    close(ch)

    for true {
        if val, ok:=<-ch; ok {
            fmt.Println(val)
        } else {
            break
        }

    }
}

4. Каков будет порядок вывода чисел в следующем коде с defer?

func main() {
    func() {
        defer fmt.Println(1)
    }()
    defer fmt.Println(2)
}

5. Каков будет порядок вывода чисел в следующем коде с defer и блоками?

func main() {
    {
        defer fmt.Println(1)
    }
    defer fmt.Println(2)
}
2

SQL

Задача 6

Составить запрос который выведет все последние проценты по всем пунктам выдачи

  • Таблица pickpoint_tariff:

    create table pickpoint_tariff
    (
      id            bigserial,
      created       timestamp default now(),
      pickpoint_id  bigint,
      percent       numeric
    );
    
  • Список пунктов: 1, 2, 3, 4, 5
  • Пример данных в таблице:
    • 1 — 02.10 — 1 — 2%
    • 2 — 02.10 — 2 — 2%
    • 3 — 02.10 — 3 — 2%
    • 4 — 02.10 — 4 — 2%
    • 5 — 02.10 — 5 — 2%
    • 6 — 03.10 — 1 — 3%
    • 7 — 03.10 — 4 — 1%
    • 8 — 03.10 — 2 — 5%