Нужно три метода:
Len() int — Less(i, j int) bool — должен ли Swap(i, j int) — как После этого такой тип можно передавать в
sort.Sort или sort.Stable.🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉1
sort.Sort не гарантирует сохранение
sort.Stable обеспечивает 🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🔬 Вы когда-нибудь смотрели на код и думали: «Работает, но почему?»
А теперь представьте, что вы:
→ понимаете, почему модель учится слишком медленно или слишком быстро;
→ видите, какие данные реально влияют на предсказание, а какие — шум;
→ знаете, что происходит внутри нейронки.
4 декабря стартует курс «Математика для разработки AI-моделей».
Линал, оптимизация, матан, статистика — всё, что происходит внутри модели между input и output. Практика на Python. Живые разборы с экспертами из SberAI, ВШЭ, Wildberries&Russ.
3 задания + финальный проект. Без теории ради теории — только то, что реально используется в моделях.
🎁 Бонус: курс по школьной математике + тест уровня математики
👉 Записаться
А теперь представьте, что вы:
→ понимаете, почему модель учится слишком медленно или слишком быстро;
→ видите, какие данные реально влияют на предсказание, а какие — шум;
→ знаете, что происходит внутри нейронки.
4 декабря стартует курс «Математика для разработки AI-моделей».
Линал, оптимизация, матан, статистика — всё, что происходит внутри модели между input и output. Практика на Python. Живые разборы с экспертами из SberAI, ВШЭ, Wildberries&Russ.
3 задания + финальный проект. Без теории ради теории — только то, что реально используется в моделях.
🎁 Бонус: курс по школьной математике + тест уровня математики
👉 Записаться
Для этого есть функции
sort.Slice и sort.SliceStable, которые принимают любой func(i, j int) bool. Внутри функции less можно описать 🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
Для этого есть функция
🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🤩1
Сортировка пузырьком:
package main
import "fmt"
func BubbleSort(nums []int) {
n := len(nums)
if n < 2 {
return
}
for i := 0; i < n; i++ {
swapped := false
for j := 0; j < n-1-i; j++ {
if nums[j] > nums[j+1] {
nums[j], nums[j+1] = nums[j+1], nums[j]
swapped = true
}
}
if !swapped {
break
}
}
}
func main() {
data := []int{5, 2, 6, 3, 1, 4}
BubbleSort(data)
fmt.Println(data)
}
🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1
t.Error(), t.Fail(), t.Fatal() и t.FailNow() используются для обозначения t.Fail() и t.Error() помечают тест как t.Run().t.Error() дополнительно t.FailNow() и t.Fatal() сначала вызывают Fail(), затем останавливают runtime.Goexit(), выполняя все defer, но не прерывая другие t.Fatal() t.FailNow() вызывается только из 🔹 Основы IT для непрограммистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Go быстр, но математика быстрее
Можно бесконечно оптимизировать горутины, но если ваша ML-модель построена на кривой математике, перформанс не спасет. Мы перезапустили курс по матану для тех, кто хочет писать умный софт.
Живые вебинары уже идут. Что в меню:
1. Linear Algebra: разбираем свойства векторов, ранги матриц и операции над ними (база для любой нейронки);
2. Regression Analysis: строим линейную регрессию, разбираем МНК и учимся предсказывать значения;
3. SVD: реализуем сингулярное разложение для рекомендательных систем и сжатия данных.
Инструментарий —
⏳ Вход закрывается 9 декабря.
Запрыгивайте в последний вагон:
https://clc.to/LojFzw
Можно бесконечно оптимизировать горутины, но если ваша ML-модель построена на кривой математике, перформанс не спасет. Мы перезапустили курс по матану для тех, кто хочет писать умный софт.
Живые вебинары уже идут. Что в меню:
1. Linear Algebra: разбираем свойства векторов, ранги матриц и операции над ними (база для любой нейронки);
2. Regression Analysis: строим линейную регрессию, разбираем МНК и учимся предсказывать значения;
3. SVD: реализуем сингулярное разложение для рекомендательных систем и сжатия данных.
Инструментарий —
NumPy и scikit-learn , но логика применима везде.⏳ Вход закрывается 9 декабря.
Запрыгивайте в последний вагон:
https://clc.to/LojFzw
go test помечает тест как
Пример:
func TestPanic(t *testing.T) {
x := 5
y := 0
result := x / y // panic: runtime error: integer divide by zero
// t.Error() и t.Fail() НЕ вызывались
}Вывод go test:
--- FAIL: TestPanic (0.00s)
panic: runtime error: integer divide by zero
goroutine 6 [running]:
testing.tRunner.func1()
/usr/lib/go-1.20/src/testing/testing.go:1526 +0x1c4
panic(...)
/usr/lib/go-1.20/src/runtime/panic.go:884 +0x212
main.TestPanic(...)
/path/to/test_test.go:10 +0x34
testing.tRunner(...)
/usr/lib/go-1.20/src/testing/testing.go:1526 +0x1a4
FAIL
🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.
Также приветствуется фидбек в комментах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤4👍2
sync.Once в Go обеспечивает выполнение функции
atomic.Bool и При вызове
Do(f) сначала проверяется o.done.Load() — если флаг f. Это оптимизировано для горячего пути: поле done размещено первым в структуре для минимизации инструкций на amd64/386. Неправильная реализация только с CompareAndSwap привела бы к f первой.Если
done равно false, вызывается doSlow(f): захватывается мьютекс o.m.Lock(), повторно проверяется done, и только тогда выполняется f() с отложенной установкой o.done.Store(true). Это гарантирует, что f запустится f паникует, Do считает задачу выполненной, и будущие вызовы пропускают её.🔹 Основы IT для непрограммистов
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4😁1
В Go выражение
select {} без блоков case — это Такой вызов часто используется для удержания основной горутины живой, чтобы программа
func main() {
go doSomething()
select {}
}🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔6👍3❤2😁1
Это два способа создания
select {} — горутина блокируется навсегда, for {} — это бесконечный цикл, 🔹 Математика для Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
errors.Is и errors.As нужны для корректной работы с обёрнутыми ошибками, когда err содержит не просто
Обычное сравнение err == someErr работает только если:
• err указывает
• ошибка
fmt.Errorf("%w", err) или аналогичные механизмы.Как только добавляется контекст
fmt.Errorf("read config: %w", err), внешнее значение меняется, и == уже не срабатывает, хотя внутри всё ещё лежит исходная ошибка.Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
errors.Is разбирает цепочку Функция
errors.Is вызывает Unwrap у ошибки, ==, либо через метод Is, Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
errors.As проходит по цепочке обёрнутых ошибок и пытается найти в ней значение, которое Функция вызывается как
errors.As(err, &target), где target — указатель на *os.PathError.Внутри она разворачивает ошибку
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2
errors.Is(err, target) — проверяет, errors.As(err, &target) — ищет внутри обёрток ошибку определённого типа и, если находит, Please open Telegram to view this post
VIEW IN TELEGRAM
Оцените их по шкале 🔥,❤️,👍,😢, 🥱,
где 🔥 — это супер, а 🥱 — это скучно.
Также приветствуется фидбек в комментах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍4❤3🥱2
json.Marshal и json.MarshalIndent оба кодируют значение в Marshal выдаёт MarshalIndent — 🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Избегай Race Condition в карьере
Пока другие учат только синтаксис Go, ты можешь освоить архитектуру высоконагруженных систем. На собеседованиях в BigTech смотрят не на то, как ты пишешь
Оффер 1 + 2:
Покупаешь один курс (основной), получаешь доступ к трем.
Мастхэв для гофера:
— Архитектуры и шаблоны проектирования;
— Алгоритмы и структуры данных.
Задеплоить знания
Таймаут: 31 декабря.
Ментор здесь: @manager_proglib
Пока другие учат только синтаксис Go, ты можешь освоить архитектуру высоконагруженных систем. На собеседованиях в BigTech смотрят не на то, как ты пишешь
if err != nil, а на то, как ты строишь взаимодействие сервисов.Оффер 1 + 2:
Покупаешь один курс (основной), получаешь доступ к трем.
Мастхэв для гофера:
— Архитектуры и шаблоны проектирования;
— Алгоритмы и структуры данных.
Задеплоить знания
Таймаут: 31 декабря.
Ментор здесь: @manager_proglib