- 1
- 2
- 3
- 4
- 5
- 6
- 7
package main
func main() {
var str = "Hello World"
var length = len([]rune(str))
println("Length of the string is :", length)
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−2
package main
func main() {
var str = "Hello World"
var length = len([]rune(str))
println("Length of the string is :", length)
}
String Length in Golang
To get the length of a String in Go programming, convert the string to array of runes, and pass this array to len() function.
+1
math.Min(float64, float64) float64
math.Max(float64, float64) float64
В goвне нету math.Min для integer. Даже в анскильном "Си" это есть.
https://www.pixelstech.net/article/1559993656-Why-no-max-min-function-for-integer-in-GoLang
0
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
−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()?
Нужно написать цикл.
0
// Интерполяция строк в "Go"
koko := "pituh"
text = `
ehal ` + koko + `
cherez ` + koko + `
vidit ` + koko + ` v reke ` + koko + `
sunul
`
P.S. Её нет
+3
if err != nil {
return nil, err
}
Как же заебало
+2
// 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 не возвращает, и запилили обёртку вокруг неё для "игнорирования" этой "ошибки".
Пиздец
+1
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
}
}
Ошибочка обработана
+2
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
}
Го сдался.
+1
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.
> Сегодня расскажу про Фабричный метод.