Size: a a a

2020 December 12

S

Sergey in Go-go!
сонная википедия
за что бить? вы прочитали сообщение?
в чем смысл фичи закрытия профиля, если через старый API его можно достать?
Ещё раз. Если публичный апи библиотеки ломается - не важно по какой причине - это мажорное обновление со всеми вытекающими. Чего там кому хочется при этом - не важно.
источник

s

salvoroni in Go-go!
Михаил촊
Да всё можно. Используешь gopath. Раскладываешь там модули по папкам, и приложения по папкам, инклудишь одно в другое. Есть ещё import internal если надо
>gopath
удобно
источник

S

Sergey in Go-go!
кажется кто-то путает удобное и привычное...
источник

с

сонная википедия... in Go-go!
Sergey
Ещё раз. Если публичный апи библиотеки ломается - не важно по какой причине - это мажорное обновление со всеми вытекающими. Чего там кому хочется при этом - не важно.
не библиотеки, а сервиса апи ломается
поломка библиотеки результат оного
источник

S

Sergey in Go-go!
Sergey
кажется кто-то путает удобное и привычное...
и как с этим связано обновление библиотеки тогда? с этого же разговор начался. твоя программа , получается, сломается независимо от того, обновишь ты либу или нет.
источник

s

salvoroni in Go-go!
наконец-то вышло связать
но беда пришла откуда не ждали
почему-то функция не портировалась
не подскажите в чем может быть проблема?

main.go
package main

import (
 "fmt"
 "configs"
)

func main() {
 config := configs.Configs{}
 config = configs.getConf("../config.yaml")

 fmt.Println(config)
}


configs.go
package configs

import (
 "gopkg.in/yaml.v3"
 "io/ioutil"
 "log"
)

type Configs struct {
 Port int `yaml:"port"`
 Host string `yaml:"host"`
}

func getConf(path string) Configs {
 var conf Configs
 confFile, err := ioutil.ReadFile(path)
 if err != nil {
   log.Printf("yaml get file err %v", err)
 }
 err = yaml.Unmarshal(confFile, &conf)
 if err != nil {
   log.Printf("Unmarshall error %v", err)
 }

 return conf
}
источник

s

salvoroni in Go-go!
Но структуру можно использовать
источник

с

сонная википедия... in Go-go!
salvoroni
наконец-то вышло связать
но беда пришла откуда не ждали
почему-то функция не портировалась
не подскажите в чем может быть проблема?

main.go
package main

import (
 "fmt"
 "configs"
)

func main() {
 config := configs.Configs{}
 config = configs.getConf("../config.yaml")

 fmt.Println(config)
}


configs.go
package configs

import (
 "gopkg.in/yaml.v3"
 "io/ioutil"
 "log"
)

type Configs struct {
 Port int `yaml:"port"`
 Host string `yaml:"host"`
}

func getConf(path string) Configs {
 var conf Configs
 confFile, err := ioutil.ReadFile(path)
 if err != nil {
   log.Printf("yaml get file err %v", err)
 }
 err = yaml.Unmarshal(confFile, &conf)
 if err != nil {
   log.Printf("Unmarshall error %v", err)
 }

 return conf
}
вам бы язык сначала изучить
источник

S

Sergey in Go-go!
salvoroni
наконец-то вышло связать
но беда пришла откуда не ждали
почему-то функция не портировалась
не подскажите в чем может быть проблема?

main.go
package main

import (
 "fmt"
 "configs"
)

func main() {
 config := configs.Configs{}
 config = configs.getConf("../config.yaml")

 fmt.Println(config)
}


configs.go
package configs

import (
 "gopkg.in/yaml.v3"
 "io/ioutil"
 "log"
)

type Configs struct {
 Port int `yaml:"port"`
 Host string `yaml:"host"`
}

func getConf(path string) Configs {
 var conf Configs
 confFile, err := ioutil.ReadFile(path)
 if err != nil {
   log.Printf("yaml get file err %v", err)
 }
 err = yaml.Unmarshal(confFile, &conf)
 if err != nil {
   log.Printf("Unmarshall error %v", err)
 }

 return conf
}
GetConfig
Ты готур прошёл хотя бы?
источник

с

сонная википедия... in Go-go!
в Go публичные методы и структуры должны начинаться с большой буквы
источник

s

salvoroni in Go-go!
а
так вот в чем проблема
спасибо

раньше так писал но после си отвык
но не знал все равно об этом
источник

АД

Алексей Долгов... in Go-go!
меняю на лету тикер. получаю race condition
func (wp *WorkerPool) SetGCTicker(ticker *time.Ticker) {
 wp.Lock()
 wp.gcTicker.Stop()
 wp.gcTicker = ticker
 wp.Unlock()
}


в другом мес
те 
 go func() {
   for range wp.gcTicker.C {

   }
 }()


Так и должно быть? и что делать?
вот так как то стремно делать
for {
     wp.Lock()
     <-wp.gcTicker.C
     
     wp.Unlock()
   }
источник

S

Sergey in Go-go!
выглядит так, как-будто ерунду спроектировал.
источник

A

Artyom in Go-go!
А чего стремно?
источник

АД

Алексей Долгов... in Go-go!
ну тут типо по тикеру удаляются ненужные воркера из пулла и мне хотелось бы менять периодичность в реалтайме без перезапуска
источник

ЕО

Евгений Омельченко... in Go-go!
Алексей Долгов
меняю на лету тикер. получаю race condition
func (wp *WorkerPool) SetGCTicker(ticker *time.Ticker) {
 wp.Lock()
 wp.gcTicker.Stop()
 wp.gcTicker = ticker
 wp.Unlock()
}


в другом мес
те 
 go func() {
   for range wp.gcTicker.C {

   }
 }()


Так и должно быть? и что делать?
вот так как то стремно делать
for {
     wp.Lock()
     <-wp.gcTicker.C
     
     wp.Unlock()
   }
Зачем нужен SetGCTicker, если у тикера есть Reset?
источник

ЕО

Евгений Омельченко... in Go-go!
источник

S

Sergey in Go-go!
ну этож надо документацию или исходники читать.. :)
источник

ЕА

Егор Андреевич... in Go-go!
Евгений Омельченко
Зачем нужен SetGCTicker, если у тикера есть Reset?
Ресетом ты время тика не изменишь
источник

S

Sergey in Go-go!
Егор Андреевич
Ресетом ты время тика не изменишь
чёйто?
источник