Go tests
7.72K subscribers
301 photos
94 links
По всем вопросам- @haarrp

@itchannels_telegram - 🔥полезные ит-каналы

https://t.me/Golang_google - Golang программирование

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golang_jobsgo - go chat jobs
Download Telegram
Какие типы принимает функция math.Abs
Anonymous Quiz
47%
float64
5%
float32
12%
int64
5%
Ни один вышеперечисленный
30%
Любые
😁4👎3👍1
Какой паттерн используется для организации обмена данными между объектами без прямых ссылок
Anonymous Quiz
40%
Mediator
30%
Observer
20%
Decorator
7%
Builder
3%
Proglibator
👎6
💡 Go-хак дня:
Ключевое слово type в Go — это мощный инструмент, а не просто способ объявить struct.

Вот что с ним можно:
🔹 Создавать собственные типы на основе int, string, map и т.д.
🔹 Давать удобные псевдонимы стандартным типам
🔹 Прикреплять методы к любому типу — даже к обычному int

Это позволяет писать чистый, читаемый и расширяемый код.
Управляй логикой через свои типы — и код начнёт работать на тебя 💪

#GoLang #GoTips #LearnGo

@golangtests
7👍3🔥3
🧠 Quiz для Go-разработчиков: скомпилируется ли этот код?


type T int
var n T = 1

func foo() {
switch 1 {
case n:
}
}

func bar() {
switch n {
case 1:
}
}

Вопрос: оба switch скомпилируются?
Подумай, а потом напиши ответ в комментариях (Версия go 1.18) 👇

@golangtests
👍2
💡 Вместо отправки сигнала в канал, подумай о close() или sync.WaitGroup для завершения горутины.

Оба варианта:

Работают, даже если никто не читает из канала
Позволяют нескольким горутинам реагировать на завершение

Такой подход делает код чище и избегает утечек.

#golang #concurrency
👍10🔥1
Что произойдёт, если вы попытаетесь присвоить значение переменной типа int переменной типа *int
Anonymous Quiz
61%
Ошибка компиляции
12%
Присвоение произойдёт без ошибок
21%
Значение будет скопировано в указатель
6%
Программа выйдет с ошибкой во время выполнения
👎6👍21
В Go можно запускать тесты без единой внешней библиотеки — всё встроено из коробки!
Вот как протестировать код в 3 шага:

1️⃣ Создай файл с суффиксом _test.go — например, sum_test.go
2️⃣ Импортируй пакет testing и напиши функцию вида: TestXxx(t *testing.T)
3️⃣ Запусти тесты командой: go test

Никаких зависимостей. Никаких настроек. Просто пиши код и проверяй его сразу.

#golang #testing #unittest
🤯114👍4😁4🔥1
Что выведет код
Anonymous Quiz
13%
6 12 false
16%
6 6 false
57%
3 6 true
14%
6 6 true
😁21👎21
6👍3
👣 Напишите в комментариях, что выведет код и почему?


package main

import (
"fmt"
)

func tricky() (err error) {
defer func() {
fmt.Println("D1:", err) // состояние именованного результата до recover
if r := recover(); r != nil {
err = fmt.Errorf("recovered: %v", r)
}
fmt.Println("D2:", err) // состояние после recover
}()

defer func() {
panic(2) // паника №2 во время размотки стека
}()

panic(1) // паника №1
}

func main() {
fmt.Println("start")
fmt.Println("ret:", tricky())
fmt.Println("end")
}


Вопросы:
🟠Какой будет порядок строк start, D1: ..., D2: ..., ret: ..., end?
🟠Какое значение попадёт в err и что напечатает fmt.Println("ret:", ...)?
🟠Почему паника из второго defer меняет исход паники?

@golangtests
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3👍1
Что выведет код
Anonymous Quiz
19%
6 12 false
10%
6 6 false
59%
3 6 true
11%
6 6 true
😁21👎15🤬8👏5🤯3👍2
Forwarded from Golang
👣 Вышел Go 1.25.0!

- Release notes: https://go.dev/doc/go1.25
- Скачать: https://go.dev/dl/#go1.25.0

Здесь можно посмотреть интерактивную версию релиза с множеством примеров, показывающих, новые фичи и посмотоеть как они работают

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1🥰1
🤩9👍1👎1
Что выведет код
Anonymous Quiz
15%
nil
32%
Ошибка компиляции
27%
2 nil
26%
21
😁5🤔1
4👍1🔥1