Mike
Anonymous
Mike
многопоточность != конкарренси
Iurii
Mike
мне просто сложно представить человека, пришедшего в го, и не начавшего с конкурентности
Anonymous
Nikita
ой, да ладно, конкаренси в го - самое изи. Рутины, каналы, синхронизация, мютексы, атомические операции и контексты. Самое сложное, что могут спросить - про runtime.Gosched()
Mike
Irina
нет, ну я почитала что это такое, прошла tour of go где она упоминается. А потом по работе пользовалась только пакетами net/http и database/sql
Mike
Anonymous
Ох уж эти стикеры, фиг поймёшь смысл некоторых 😄
Mike
беги ко мне с хастой!
Mike
на 4 клетки дальше за один ход
Mike
viva la heroes
Mike
это из героев меча и магии вообще-то)
Anonymous
😄
Pawel
Pawel
Nick
/voteban
Stanislav
Здесь вам не каесочка ;)
Pawel
"Вот бы были ... нормальное ооп" - /votekill
Лёша
invariance
Ребяты, а какие русскоязычные ресурсы по Го знаете, кроме gobyexample.ru golang-book.ru (ну и собсна этого чата)?
Anonymous
Valentin
Илья
invariance
invariance
Но на русском проще общую суть уловить как то
invariance
мб и не знаю)
invariance
Суть не в этом
invariance
Спасибо за совет
Den
Ребятки и девчатки. Не могу разобратся с одни простым моментом. Когда я использую структуры, то по идее я не должен их передавать между пэкеджами. То есть если у меня в главном пэкедже есть структура AppConfig то ее ведь не скушает функция которая объявлена в другом пэкедже. Жалуется на undefine. Погуглил про интерфейсы, можно как то через них сделать, но я так понял что концепция такова что лучше не делать так или я что-то путаю. Спасибо
Aleksandr
код покажи
Den
view.go
func NewView(conf AppConfig) *View {
var view = View{}
MinerMenuItems := make([]string, 0)
for i, v := range conf.Workers {
if i < 9 {
MinerMenuItems = append(minerMenuItems, "["+strconv.Itoa(i+1)+"] ["+v.MinerName+"](fg-green)")
}
}
Den
main.go
type AppConfig struct {
Rig struct {
Rigid string json:"rigid"
Rigname string json:"rigname"
Aleksandr
как передаешь в функцию покажи
Aleksandr
с этимм все ясно
Leonid
так не работает. надо AppConfig в дочерний пакадж вынести. и уже из view его вызыватькак config/AppConfig
Илья
Aleksandr
на самом деле ему надо юазать IDE, которая подскажет что conf AppConfig - это что-то неизвестное
Илья
Или объяви в пакетах конфиги которые они принимают и в main из них собери один большой
Leonid
да и vscode и sublime это скажет😊
Den
Den
Den
Aleksandr
в одном пакете пишешь AppConfig, в другом пакете packageName.AppConfig
Den
Nikita
Только не вздумайте хранить инстанс конфига в переменной уровня пакета
✙ galactico ✙
братишки, выручайте, не могу найти нормальный чат по С, но мб кто-то из вас рискнет помочь мне в паре baby steps...
r00t b0x
Go схож с C
r00t b0x
Шутка хорошо. Все языки схожи.
✙ galactico ✙
спасибо, гайз, уже не актуально, из С++ чата помогли. Я просто думал, мб у кого из вас есть унивекский бэкграунт) а тут, видимо, все на ютюб взрощены )
Alexander
Alexander
C++ да, С не слышал
Maxim
в университетах сейчас рассказывают про чаты в телеграми по си?
Maxim
или к чему это была отсылка?
Aleksandr
расставил, так сказать, точки на i
Anonymous
Правда, что в C указатель, объявленный в функции живёт только в теле функции и его нельзя вернуть?
Aleksandr
Maxim
а где вопрос-то был? Я вижу только вопрос про сишный чат
Maxim
Anonymous
нет
Цит.: Note that, unlike in C, it's perfectly OK to return the address of a local variable; the storage associated with the variable survives after the function returns. In fact, taking the address of a composite literal allocates a fresh instance each time it is evaluated, so we can combine these last two lines.
http://golang.org/doc/effective_go.html#functions
Как тогда расценить первое предложение?.
Dmitry
там написано про указатель на локальную переменную
Maxim
Maxim
ну то есть ты можешь создать переменную и вернуть указатель на нее из функции
Maxim
значение заэскейпится в хип
Anonymous
Maxim
автоматически
Dmitry
Maxim
полученный указатель положишь в другую переменную
Anonymous