Доброго ранку, шановні колеги! Сьогодні я хотів би поділитись репозиторієм нашого ком'юніті, де будуть зібрані практичні приклади вирішення тих чи інших проблем, або ж розгляд цікавих питань щодо роботи golang всередині, які не тягнуть на окрему статтю (адже їх вже й так багато різних на різний смак, а у мене немає стільки часу на написання великої кількості).
Прошу переглянути. Прикладів поки небагато, але деякі з них доволі цікаві. Хтось просив пояснити alignment в структурах - там це є.
https://github.com/uagolang/practice
В коментарях пишіть, які теми цікавлять ще. Особисто в мене в планах на найближчий час більш детально зупинитись на конкурентності та патернах для вирішення проблем з нею пов'язаних 🙈
Став👍 якщо сподобався матеріал!
Слава Україні🇺🇦 🇺🇦
#practice@uagolang
———————
golang українською🇺🇦
Прошу переглянути. Прикладів поки небагато, але деякі з них доволі цікаві. Хтось просив пояснити alignment в структурах - там це є.
https://github.com/uagolang/practice
В коментарях пишіть, які теми цікавлять ще. Особисто в мене в планах на найближчий час більш детально зупинитись на конкурентності та патернах для вирішення проблем з нею пов'язаних 🙈
Став
Слава Україні
#practice@uagolang
———————
golang українською
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - uagolang/practice: This repository contains practical examples of resolving challenge problems
This repository contains practical examples of resolving challenge problems - uagolang/practice
1👍2❤1
Всім привіт! Буду іноді закидати вам задачки. Якісь складні, якісь легкі - різні.
Почнемо з легкого, отже, що виведе даний код?
Чи бачите ви тут якісь помилки? Які? Як виправити і чому вони виникають?
Які потенційні проблеми в коді (в цьому, неправильному варіанті) ви бачите?
Playground: https://goplay.tools/snippet/VWtsgqD0_a6
Відповіді пишіть в коментарях та прикріплюйте також посилання на playground, як у мене.
#practice@uagolang #trytosolve@uagolang
———————
golang українською🇺🇦
Почнемо з легкого, отже, що виведе даний код?
Чи бачите ви тут якісь помилки? Які? Як виправити і чому вони виникають?
Які потенційні проблеми в коді (в цьому, неправильному варіанті) ви бачите?
Playground: https://goplay.tools/snippet/VWtsgqD0_a6
Відповіді пишіть в коментарях та прикріплюйте також посилання на playground, як у мене.
package main
import (
"fmt"
"math/rand"
"sync"
"time"
)
func worker(id int, tasks <-chan int, results chan<- int, wg *sync.WaitGroup) {
defer wg.Done()
for task := range tasks {
delay := time.Duration(rand.Intn(300)) * time.Millisecond
time.Sleep(delay)
select {
case results <- task * 2:
fmt.Printf("Worker %d processed task %d\n", id, task)
case <-time.After(100 * time.Millisecond):
fmt.Printf("Worker %d timeout on task %d\n", id, task)
}
}
}
func main() {
rand.Seed(time.Now().UnixNano())
taskCount := 10
workerCount := 3
tasks := make(chan int, taskCount)
results := make(chan int, taskCount)
var wg sync.WaitGroup
for i := 1; i <= workerCount; i++ {
wg.Add(1)
go worker(i, tasks, results, &wg)
}
for i := 1; i <= taskCount; i++ {
tasks <- i
}
close(tasks)
close(results)
wg.Wait()
for res := range results {
fmt.Println("Result:", res)
}
}
#practice@uagolang #trytosolve@uagolang
———————
golang українською
Please open Telegram to view this post
VIEW IN TELEGRAM
goplay.tools
Better Go Playground
Better Go Playground with autocomplete and syntax highlight support
Доброго ранку, колеги 🫡👋
Екватор тижня починаємо із задачки на слайси в Go. Я би не сказав, що вона дуже складна, але чітко демонcтрує розуміння їх роботи.
Якщо ще й прокоментуєте рішення (код) - буду подвійно вдячний🎶
Playground: https://goplay.tools/snippet/dK00TwKkib2
Рішення:ти бач які розумецькі! Вирішуй задачу, а не морозся 😄
Чекаю на відповіді в коментарях!
#practice@uagolang #trytosolve@uagolang #slices@uagolang
———————
golang українською🇺🇦
Екватор тижня починаємо із задачки на слайси в Go. Я би не сказав, що вона дуже складна, але чітко демонcтрує розуміння їх роботи.
Якщо ще й прокоментуєте рішення (код) - буду подвійно вдячний
Playground: https://goplay.tools/snippet/dK00TwKkib2
Рішення:
package main
import (
"fmt"
)
/*
🏆 Задача: імплементуйте функцію CloneAndModify(original []int) ([]int, []int), яка:
- Робить повну копію слайсу original
- Змінює лише копію — кожен елемент множиться на 2
↪️ Повертає два слайси:
1. Незмінений оригінал
2. Модифікована копія
⚠️ Умова:
- Якщо після змін копії змінюється і оригінал — значить копію зроблено неправильно
*/
func main() {
original := []int{1, 2, 3, 4, 5}
o, c := CloneAndModify(original)
fmt.Println("original:", o)
fmt.Println("copy:", c)
}
func CloneAndModify(original []int) ([]int, []int) {
// напиши код тут
return original, nil
}
Чекаю на відповіді в коментарях!
#practice@uagolang #trytosolve@uagolang #slices@uagolang
———————
golang українською
Please open Telegram to view this post
VIEW IN TELEGRAM
goplay.tools
Better Go Playground
Better Go Playground with autocomplete and syntax highlight support
👍1