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

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории Golang Разработчик

Посмотреть видео в категории

(2024-07-05)

Go Language

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

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

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

package main

import "fmt"

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

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

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
        }

    }
}

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

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

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

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

SQL

  • Составить запрос который выведет все последние проценты по всем пунктам выдачи
    • Таблица 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%