0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
func down(h Interface, i0, n int) bool {
i := i0
for {
j1 := 2*i + 1
if j1 >= n || j1 < 0 { // j1 < 0 after int overflow
break
}
j := j1 // left child
if j2 := j1 + 1; j2 < n && h.Less(j2, j1) {
j = j2 // = 2*i + 2 // right child
}
if !h.Less(j, i) {
break
}
h.Swap(i, j)
i = j
}
return i > i0
}
Какие же интерфейсы в Go скудные, что заставляют разработчиков использовать функции API внутри вспомогательных в пределах одной сущности. Взято из: https://github.com/golang/go/blob/master/src/container/heap/heap.go
JaneBurt,
06 Января 2022
−7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
keys := make([]keyType, 0, len(myMap))
values := make([]valueType, 0, len(myMap))
for k, v := range myMap {
keys = append(keys, k)
values = append(values, v)
}
Как в "Go" у карты взять keys(), и values()?
Нужно написать цикл.
3_dar,
20 Декабря 2021
0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
// Интерполяция строк в "Go"
koko := "pituh"
text = `
ehal ` + koko + `
cherez ` + koko + `
vidit ` + koko + ` v reke ` + koko + `
sunul
`
P.S. Её нет
3_dar,
16 Декабря 2021
+3
- 1
- 2
- 3
if err != nil {
return nil, err
}
Как же заебало
3_dar,
15 Декабря 2021
+2
- 1
- 2
- 3
// Create a Version 4 UUID, panicking on error.
// Use this form to initialize package-level variables.
var u1 = uuid.Must(uuid.NewV4())
https://github.com/gofrs/uuid
Питули запилили функцию, которая никогда error не возвращает, и запилили обёртку вокруг неё для "игнорирования" этой "ошибки".
Пиздец
3_dar,
02 Декабря 2021
+1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
func (c *Client) DeleteFile(filename string) {
_, err := s3.New(c.session).DeleteObject(&s3.DeleteObjectInput{
Bucket: aws.String(c.bucket),
Key: aws.String(filename),
})
if err != nil {
return
}
}
Ошибочка обработана
Vitanaki,
21 Июля 2021
+2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
func Map[F, T any](s []F, f func(F) T) []T {
r := make([]T, len(s))
for i, v := range s {
r[i] = f(v)
}
return r
}
Го сдался.
PolinaAksenova,
02 Июня 2021
+1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
func getTransport(tt string) (iTransport, error) {
if tt == "scooter" {
return newElectricScooter(), nil
}
if tt == "quadcopter" {
return newQuadcopter(), nil
}
return nil, fmt.Errorf("Wrong type")
}
https://habr.com/ru/post/556512/
> Factory Method Pattern
> Привет, друзья. С вами Alex Versus.
> Ранее мы говорили про шаблоны проектирования Одиночка и Стратегия, про тонкости реализации на языке Golang.
> Сегодня расскажу про Фабричный метод.
PolinaAksenova,
10 Мая 2021
+1
- 1
- 2
- 3
if req.Lang != "" {
req.Lang = "EN"
}
Я сказал английский!
[Поставленная задача: если пришёл запрос без поля, поставить значение по умолчанию]
anon007,
06 Мая 2021
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
// https://docs.docker.com/engine/api/v1.24/#create-a-container
POST /v1.24/containers/create HTTP/1.1
Content-Type: application/json
Content-Length: 12345
{
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"FOO=bar",
"BAZ=quux"
],
...
}
Ядро предоставляет сисколл execve. Execve принимает переменные окружения в виде массива строк A=B -
не знаю конкретных причин, почему так сделано, но скорее всего просто потому что писать хэшмапу под
это дело, которая еще и будет выкинута из памяти через относительно небольшое время - дело дорогое и
ненужное, плюс наверняка какой-нибудь лишний пердолинг со стеком.
https://man7.org/linux/man-pages/man2/execve.2.html
Го, "человеческий язык" с поддержкой обычных мап из коробки, ничтоже сумляшеся не замечает никакой
проблемы и заставляет пользователя передавать переменные окружения в том же формате, потому что у
языка не только синтаксис должен быть таким же тупым, как программист на нём и вообще мы же тут
делаем вид, что мы C, только лучше.
https://golang.org/pkg/os/exec/#example_Command_environment
Докер, "человеческий сервис" с HTTP API, использующим формат JSON с поддержкой обычных мап из коробки,
ничтоже сумляшеся не замечает никакой проблемы и заставляет пользователя передавать переменные
окружения в том же формате, потому что на программист на языке должен быть тупым, как этот язык.
https://docs.docker.com/engine/api/v1.24/#create-a-container
В результате мы имеем пачку долбоебов, из-за которых оперирующие (мапами / объектами / словарями / как угодно назовите)
нормальные люди должны вести себя как типичные гошники.
Fike,
17 Февраля 2021