Size: a a a

2020 April 06

zl

ziggy lucid in Go-go!
Для параметров в виде ссылок в экспортируемых методах и функциях как будет грамотней, всегда проверять параметр на nil и возвращать ошибку или оставить на совести потребителя проверку входных параметров и ловить панику в случае чего?
Посмотрел по разным библиотекам - далеко не все проверяют на nil.
источник

D🦆

Dmitry 🦆 in Go-go!
А если новая создается параллельно на соседних ядрах в одном месте?
источник

DP

Daniel Podolsky in Go-go!
а?!
источник

D🦆

Dmitry 🦆 in Go-go!
оно потом в память из кеша в одно место не запишется разве?
источник

FW

Fuck World in Go-go!
Dmitry 🦆
покажи PATH
источник

D🦆

Dmitry 🦆 in Go-go!
А теперь echo $PATH в консоли баша
источник

x

x-foby in Go-go!
Dmitry 🦆
А теперь echo $PATH в консоли баша
echo %PATH%
источник

D🦆

Dmitry 🦆 in Go-go!
PATH наследуется процессами
соответсвенно консоль надо перезапустить
источник

DE

Dmitry Ermakovich 🐍 in Go-go!
Локоть Анатолий
В конечном итоге получим код для нескольких типов. Разрабы же просто работают с памятью через unsafe.Pointer, также им надо знать размер переменной конкретного типа, но код у них в единственном варианте.
разработчики делают и универсальные варианты, например бибиотека go-funk,
например funk.IndexOf:
func IndexOf(in interface{}, elem interface{}) int {
 inValue := reflect.ValueOf(in)

 elemValue := reflect.ValueOf(elem)

 inType := inValue.Type()

 if inType.Kind() == reflect.String {
   return strings.Index(inValue.String(), elemValue.String())
 }
......

```
источник

D🦆

Dmitry 🦆 in Go-go!
  go func(data string) {
     part1 <- myFunc(data)
 }(data)


Можно как-то такую запись упростить?
источник

ЛА

Локоть Анатолий in Go-go!
Dmitry Ermakovich 🐍
разработчики делают и универсальные варианты, например бибиотека go-funk,
например funk.IndexOf:
func IndexOf(in interface{}, elem interface{}) int {
 inValue := reflect.ValueOf(in)

 elemValue := reflect.ValueOf(elem)

 inType := inValue.Type()

 if inType.Kind() == reflect.String {
   return strings.Index(inValue.String(), elemValue.String())
 }
......

```
Да это не универсальный вариант же) там перечисление типов.
Новый свой тип туда не добавить без правки разработчиками, разве нет?
источник

x

x-foby in Go-go!
Dmitry 🦆
  go func(data string) {
     part1 <- myFunc(data)
 }(data)


Можно как-то такую запись упростить?
func a() {
 go b(data)
}

func b(data string) {
 part1 <- myFunc(data)
}
источник

FW

Fuck World in Go-go!
Dmitry 🦆
А теперь echo $PATH в консоли баша
источник

DE

Dmitry Ermakovich 🐍 in Go-go!
Локоть Анатолий
Да это не универсальный вариант же) там перечисление типов.
Новый свой тип туда не добавить без правки разработчиками, разве нет?
ну я в том плане, что с помощью рефлексии люди пишут функции для нескольких типов сразу, как бы создавая полиморфизм. О своих типах речи не идет
источник

x

x-foby in Go-go!
Ну и вот в этом сеансе обратитесь к Go
источник

D🦆

Dmitry 🦆 in Go-go!
x-foby
func a() {
 go b(data)
}

func b(data string) {
 part1 <- myFunc(data)
}
Я думал, что однострочник возможен
источник

FW

Fuck World in Go-go!
x-foby
Ну и вот в этом сеансе обратитесь к Go
Ну в cmd go работает, а в msys64 нет
источник

x

x-foby in Go-go!
Dmitry 🦆
Я думал, что однострочник возможен
Ну если gofmt не использовать, то возможен 😂
источник

zl

ziggy lucid in Go-go!
Dmitry 🦆
  go func(data string) {
     part1 <- myFunc(data)
 }(data)


Можно как-то такую запись упростить?
если горутины запускаются в цикле, то рекомендуют в виде замыкания делать, чтобы не передавать параметр
https://golang.org/doc/faq#closures_and_goroutines
источник

ЛА

Локоть Анатолий in Go-go!
Dmitry 🦆
Тоже хотел бы на этот вопрос услышать ответ.
ИМХО небезопасно при изменении капасити
Кстати вопрос хороший. Конкурентно аппенидить в слайс точно нельзя, а вот писать в заранее аллоцированные ячейки, возможно и сработает. Щас сделаю тест
источник