DN
ip.IP = net.ParseIP(arg)
if ip.IP == nil {
return fmt.Errorf("%s : invalig ip address")
}
_, err := os.Stat(arg)
if os.IsNotExist(err) {
return fmt.Errorf("%s : file is not exist")
}
// полезные ништяки
return nilSize: a a a
DN
ip.IP = net.ParseIP(arg)
if ip.IP == nil {
return fmt.Errorf("%s : invalig ip address")
}
_, err := os.Stat(arg)
if os.IsNotExist(err) {
return fmt.Errorf("%s : file is not exist")
}
// полезные ништяки
return nilDN
C
DN
DN
type ArgIP struct {
IP net.IP
}
type ArgConfig struct {
Path string
}
type Arger interface {
ParseArg(arg string) error
}
func (ip ArgIP) ParseArg(arg string) error {
// работаю с конкретным ip
return nil
}
func (config ArgConfig) ParseArg(arg string) error {
// работаю о списком ip
return nil
}VS
func (p *Project) DatabaseIsInvalid(name string) bool {
result := false
p.update.RLock()
if checkDb, ok := p.InvalidDatabases[name]; ok && !checkDb {
result = true
}
p.update.RUnlock()
return result
}
Для этой структуры есть ещё одна функция, использующая Lock:func (p *Project) DatabaseSetState(name string, state bool) {
p.update.Lock()
p.InvalidDatabases[name] = state
p.update.Unlock()
}
И это всё. InvalidDatabases имеет формат map[string]bool, если это имеет значениеАД
func (p *Project) DatabaseIsInvalid(name string) bool {
result := false
p.update.RLock()
if checkDb, ok := p.InvalidDatabases[name]; ok && !checkDb {
result = true
}
p.update.RUnlock()
return result
}
Для этой структуры есть ещё одна функция, использующая Lock:func (p *Project) DatabaseSetState(name string, state bool) {
p.update.Lock()
p.InvalidDatabases[name] = state
p.update.Unlock()
}
И это всё. InvalidDatabases имеет формат map[string]bool, если это имеет значение00
VS
АД
Z
func (p *Project) DatabaseIsInvalid(name string) bool {
result := false
p.update.RLock()
if checkDb, ok := p.InvalidDatabases[name]; ok && !checkDb {
result = true
}
p.update.RUnlock()
return result
}
Для этой структуры есть ещё одна функция, использующая Lock:func (p *Project) DatabaseSetState(name string, state bool) {
p.update.Lock()
p.InvalidDatabases[name] = state
p.update.Unlock()
}
И это всё. InvalidDatabases имеет формат map[string]bool, если это имеет значениеRUnlock? И мютекс не перезаписывается нигде?VS
VS
Z
G
VS