Size: a a a

2021 May 24

VY

Vladislav Yarmak in Go-go!
а ещё посоветую

https://tour.golang.org/methods/9

c 9 по 16
источник

A

Artur in Go-go!
Кому интересно, я продолжаю делать серию уроков по Golang и сегодня вышел 2 урок.

В этом видео продолжаются базовые знания Golang, такие как: циклы, операторы ветвления if и switch, а также посмотрим на уникальное ключевое слово defer.

https://youtu.be/5MZWiUHdSBA
источник

RA

Roman Andreev in Go-go!
Здравствуйте. Вопрос про protoc-gen-go. Нарыл в одной статейке на хабре что protoc должен генерировать методы Has для непримитивных типов, а у меня что то никак не получается такой код получить. При этом непримитивные типы являются указателями в сгененрированном коде, и все вроде бы хорошо, но хотелось какой то красоты.

Вопрос - это я где то что недоглядел (может какой go_opt надо указать) или в какой то из версий компайлера от этих методов отказались, или для go такого и не было никогда?
источник

Z

Zver in Go-go!
тайп каст, если тип точно известен.
источник

А

Антоха in Go-go!
С фронта передаётся ключ и значение список с типом int

После у меня получается мапа, где все стринг, и значение из списка тоже превращается в стринг

Я попробовал сделать .([]interface{} и цикл работает, то мне значение нужно перевести в стрингу, а пишет что там float64 и нельзя перевести через .(string)
источник

Z

Zver in Go-go!
Преобразовывать стринг к инт, хотя бы тем же Atoi. Но лучше сделать тип нормальный и анмаршалить в него, если точно знаете, что приходит.
Какой-нибудь:
type H map[string][]int64
источник

А

Антоха in Go-go!
Возможно, спасибо
источник

А

Антоха in Go-go!
Благодарю, именно это мне и надо было
источник

V

Verdant in Go-go!
Как в GORM получить случайную строку из бд? Пытался из exec select... order by random() но выдает одинаковые значения
источник

ЛА

Локоть Анатолий... in Go-go!
Одна строка в таблице?
источник

V

Verdant in Go-go!
Никак нет
источник

ЛА

Локоть Анатолий... in Go-go!
1. Проверьте запрос в бд напрямую
2. Выведите запрос в консоль (горм позволяет) и сравните с ожидаемым
источник

MM

Mansur Mansurov in Go-go!
Ребят, вопрос глупый, но как мне проверить в таком случае ошибку Num1Err? Или когда оборачиваешь ошибку другой ошибкой используя %w, то доступ к первой теряется? Первый println выдает false, второй соответственно true
var Num1Err = errors.New("error #1")
var Num2Err = errors.New("error #2")

func Test_Errors(t *testing.T) {
 var err error
 err = errors.New("something wrong")
 err = fmt.Errorf("%v: %w", err, Num1Err)
 err = fmt.Errorf("%v: %w", err, Num2Err)
 fmt.Println(errors.Is(err, Num1Err))
 fmt.Println(errors.Is(err, Num2Err))
}
источник

ЛА

Локоть Анатолий... in Go-go!
Order by random решит проблему, однако он неоптимален, как и рандомный оффсет.  Оптимально было взять максимальный id,  рандомное число в его пределах и наиболее ближайший к полученному id.
Хотя если в диапазоне id есть дырки (записи удалялись), то распределение не будет равномерным
источник

OJ

O . J in Go-go!
выглядит как неправильный запрос, странно что у тебя не выдает ошибку.
попробуй - order by rand().
источник

ЛА

Локоть Анатолий... in Go-go!
В постгре random
источник

ВС

Владимир Столяров... in Go-go!
Насколько я помню это довольно фиговый по производительности способ
источник

V

Verdant in Go-go!
В курсе
источник

ВС

Владимир Столяров... in Go-go!
Если есть первичный ключ в виде bigserial, можно взять последнюю строку, сгенерить число между 1 и id из неё и взять по нему
источник

ВС

Владимир Столяров... in Go-go!
Если есть пропуски, можно делать несколько попыток
источник