Size: a a a

2019 December 27

SR

S R in Go-go!
я же могу в инт закодировать побитово все что угодно
источник

Z

Zver in Go-go!
Только через постоянное чтение, что не есть хорошо.
источник

SR

S R in Go-go!
Zver
Только через постоянное чтение, что не есть хорошо.
опять почему?) если человек выше говорит - пишешь - читаешь из либы этой - все ок - ты в безопасности
источник

DP

Daniel Podolsky in Go-go!
S R
я же могу в инт закодировать побитово все что угодно
из буханки хлеба можно сделать троллейбус…
источник

Z

Zver in Go-go!
S R
я же могу в инт закодировать побитово все что угодно
Но в другом месте вы не узнаете просто, что переменная поменялась.
источник

SD

Sunny Daily in Go-go!
а если записать и потом не мутировать?
источник

DP

Daniel Podolsky in Go-go!
тогда и атомик не нужен
источник

SR

S R in Go-go!
Daniel Podolsky
из буханки хлеба можно сделать троллейбус…
права - каждый бит - какой-то вид прав
источник

Z

Zver in Go-go!
S R
права - каждый бит - какой-то вид прав
Если просто сохранить состояние и потом по необходимости его получить, то вполне норм. Если нужно уведомить ещё, то тогда лучше другим путем пойти.
источник

NK

Nur Kutlugallyamov in Go-go!
Я бы выбрал структуру с мютексом. Проще, понятней и точно работает)
источник

Z

Zver in Go-go!
Nur Kutlugallyamov
Я бы выбрал структуру с мютексом. Проще, понятней и точно работает)
Мютесы медленней атомика.
источник

DP

Daniel Podolsky in Go-go!
Zver
Мютесы медленней атомика.
ну и что?
источник

NK

Nur Kutlugallyamov in Go-go!
Zver
Мютесы медленней атомика.
не сильно
источник

DP

Daniel Podolsky in Go-go!
каналы еще медленнее, но выбирать надо их, пока не припрет
источник

SR

S R in Go-go!
спасибо за ответы:)
источник

CF

Captain Flint in Go-go!
решил познакомиться с тикером и каналами заодно. Есть такой код

package main
import "time"
import "fmt"

func main() {
 
   ticker := time.NewTicker(time.Millisecond * 10000)
 quit := make(chan bool)
 
   go func() {
   a := [5]int { 98, 93, 77, 82, 83 }
 
   for {
     select {
     case <- ticker.C:
       for _, element := range a {
         fmt.Println("Element:", element)
       }
       quit <- true
     case <- quit:
       ticker.Stop()
       fmt.Println("Ticker stopped")
     }
   }
   }()
}


ожидаю, что в цикле распечатаю все элменты массива, потом завершится. По факту ничего. Что не так?)
источник

SN

Stanislav N. in Go-go!
Captain Flint
решил познакомиться с тикером и каналами заодно. Есть такой код

package main
import "time"
import "fmt"

func main() {
 
   ticker := time.NewTicker(time.Millisecond * 10000)
 quit := make(chan bool)
 
   go func() {
   a := [5]int { 98, 93, 77, 82, 83 }
 
   for {
     select {
     case <- ticker.C:
       for _, element := range a {
         fmt.Println("Element:", element)
       }
       quit <- true
     case <- quit:
       ticker.Stop()
       fmt.Println("Ticker stopped")
     }
   }
   }()
}


ожидаю, что в цикле распечатаю все элменты массива, потом завершится. По факту ничего. Что не так?)
Потому что у вас горутина на последнем кейсе слушает, а не тикер
источник

SN

Stanislav N. in Go-go!
Прослушку канала в главную вынесите
источник

SN

Stanislav N. in Go-go!
Иначе у вас программа завершается до того, как отработает горутина
источник

CF

Captain Flint in Go-go!
Stanislav N.
Прослушку канала в главную вынесите
не понимаю :(
источник