Получи случайную криптовалюту за регистрацию!

Golang Юниор

Логотип телеграм канала @golangprofi — Golang Юниор G
Логотип телеграм канала @golangprofi — Golang Юниор
Адрес канала: @golangprofi
Категории: Технологии
Язык: Русский
Количество подписчиков: 4.91K
Описание канала:

Канал для начинающих изучать язык программирования Go. Юниоры или Junior - Вперед.
Контент нашего канала состоит из:
- туториалы
- вопросы с собесов
- тесты на знания Go
@anothertechrock
Чат для обсуждения задач: https://t.me/ UA9kQbQdpFxmZGY6

Рейтинги и Отзывы

2.67

3 отзыва

Оценить канал golangprofi и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

1

3 звезд

1

2 звезд

0

1 звезд

1


Последние сообщения 2

2022-08-18 17:40:31 Задача. Merge sort

Реализуйте конкурентное решение merge sort (сортировка слиянием), используя горутины и каналы.

В качестве опорной точки можно взять эту последовательную реализацию:

package main
import "fmt"
func Merge(left, right [] int) [] int{
merged := make([] int, 0, len(left) + len(right))
for len(left) > 0 || len(right) > 0{
if len(left) == 0 {
return append(merged,right...)
}else if len(right) == 0 {
return append(merged,left...)
}else if left[0] < right[0] {
merged = append(merged, left[0])
left = left[1:]
}else{
merged = append(merged, right [0])
right = right[1:]
}
}
return merged
}
func MergeSort(data [] int) [] int {
if len(data) <= 1 {
return data
}
mid := len(data)/2
left := MergeSort(data[:mid])
right := MergeSort(data[mid:])
return Merge(left,right)
}
func main(){
data := [] int{9,4,3,6,1,2,10,5,7,8}
fmt.Printf("%v\n%v\n", data, MergeSort(data))
}

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

#задача
1.4K views14:40
Открыть/Комментировать
2022-08-18 13:30:40
Время изучать Golang!

24 августа в 20:00 мск пройдет открытый урок «Примитивы синхронизации в Go» в OTUS.

На вебинаре с экспертом мы научимся пользоваться частью механизмов синхронизации и бороться с «гонками» в Go.

Что вас ждет на занятии?

Поговорим про группу ожидания (sync.WaitGroup);
Затронем гарантировано одноразовое выполнение (sync.Once);
Обсудим «простой» мьютекс (sync.Mutex) и детектор гонок (race detector).

Все остальные необходимые навыки для работы Go-разработчиком ждут вас на онлайн-курсе «Golang Developer. Professional».

Перед встречей пройдите вступительный тест!
1.5K views10:30
Открыть/Комментировать
2022-08-18 10:19:55
Какой будет результат выполнения кода?
Anonymous Quiz
31%
13.1
11%
13
58%
Ошибка компиляции
643 voters1.5K views07:19
Открыть/Комментировать
2022-08-18 10:19:51
1.5K views07:19
Открыть/Комментировать
2022-08-11 16:10:31 Ответ на «Сумма квадратов»

package main
import "fmt"
func SumOfSquares(c, quit chan int) {
y := 1
for {
select {
case c <- (y*y):
y++
case <-quit:
return
}
}
}
func main() {
mychannel := make(chan int)
quitchannel:= make(chan int)
sum:= 0
go func() {
for i := 1; i <= 5; i++ {
sum += <-mychannel
}
fmt.Println(sum)
quitchannel <- 0
}()
SumOfSquares(mychannel, quitchannel)
}

Рассмотрим функцию SumOfSquares. Сначала на строке 4 мы объявляем переменную y, после чего переходим к циклу For-Select. В инструкциях select прописано два кейса.

• case c <- (y*y): служит для отправки квадрата y по каналу c, который принимается в горутине, созданной в основной рутине.
• case <-quit: служит для получения сообщения из основной рутины, которое вернется из функции.

#задача
2.8K views13:10
Открыть/Комментировать
2022-08-10 21:10:56 Задача. Сумма квадратов

Реализуйте функцию SumOfSquares, получающую целое число c и возвращающую сумму всех квадратов между 1 и c. Вам потребуется использовать инструкции select, горутины и каналы.

Например, ввод 5 приведет к возвращению 55, потому что $1² + 2² + 3² + 4² + 5² = 55$.

В качестве отправной точки можно взять этот код:

package main
import "fmt"
func SumOfSquares(c, quit chan int) {
// ваш код
}
func main() {
mychannel := make(chan int)
quitchannel:= make(chan int)
sum:= 0
go func() {
for i := 0; i < 6; i++ {
sum += <-mychannel
}
fmt.Println(sum)
}()
SumOfSquares(mychannel, quitchannel)
}

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

#задача
2.4K views18:10
Открыть/Комментировать
2022-08-03 11:10:24 Ответ на «Отформатируйте строку без ее вывода»

Легче всего это сделать с помощью fmt.Sprintf(), которая возвращает строку, не выводя ее на экран.

Например:

package main

import "fmt"

func main() {
s := fmt.Sprintf("Size: %d MB.", 85)
fmt.Println(s)
}

#задача
3.0K views08:10
Открыть/Комментировать
2022-08-02 19:21:18 Задача. Отформатируйте строку без ее вывода

Найдите самый простой способ отформатировать строку с переменными, не выводя значение.

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

#задача
2.9K views16:21
Открыть/Комментировать
2022-08-02 15:13:50 Полезная статья на Хабр о Конкурентности Go

В ней Golang-разработчик в МТС Digital Артем Чаадаев собрал и подробно разобрал наиболее подходящие примеры использования конкурентного кода в Go на основе личного опыта.

Хотите узнать, как писать конкурентный код, и как с его помощью решать бизнес-кейсы? Значит, вам сюда.
2.9K views12:13
Открыть/Комментировать
2022-07-28 19:25:26
Какой будет результат выполнения кода?
Anonymous Quiz
28%
А
45%
65
27%
Ошибка компиляции
975 voters3.3K views16:25
Открыть/Комментировать