本文整理匯總了Golang中github.com/rqme/neat.Context.State方法的典型用法代碼示例。如果您正苦於以下問題:Golang Context.State方法的具體用法?Golang Context.State怎麽用?Golang Context.State使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/rqme/neat.Context
的用法示例。
在下文中一共展示了Context.State方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Restore
func (a *File) Restore(ctx neat.Context) error {
// Restore the settings
name := a.makePath("config")
f, err := os.Open(name)
if err != nil {
return err
}
d := json.NewDecoder(f)
if err = d.Decode(&ctx); err != nil {
f.Close()
return err
}
f.Close()
// Restore the state values
for k, v := range ctx.State() {
name := a.makePath(k)
if _, err := os.Stat(name); os.IsNotExist(err) {
continue
}
f, err = os.Open(name)
if err != nil {
return err
}
d = json.NewDecoder(f)
if err = d.Decode(&v); err != nil {
f.Close()
return err
}
f.Close()
}
return nil
}
示例2: SetContext
func (s *Novelty) SetContext(x neat.Context) error {
x.State()["novelty-behaviors"] = &s.behaviors
if cx, ok := s.Searcher.(neat.Contextable); ok {
return cx.SetContext(x)
}
return nil
}
示例3: Archive
func (a *File) Archive(ctx neat.Context) error {
// Save the settings
name := a.makePath("config")
var dir = path.Dir(name)
if _, err := os.Stat(dir); err != nil {
if os.IsNotExist(err) {
os.MkdirAll(dir, os.ModePerm)
} else {
// other error
}
}
f, err := os.Create(name)
if err != nil {
panic(err)
return err
}
b, err := json.MarshalIndent(ctx, "", " ")
if err != nil {
f.Close()
return err
}
f.Write(b)
f.Close()
// Save the state values
for k, v := range ctx.State() {
name := a.makePath(k)
f, err = os.Create(name)
if err != nil {
return err
}
b, err := json.MarshalIndent(v, "", " ")
if err != nil {
f.Close()
return err
}
f.Write(b)
f.Close()
}
return nil
}
示例4: SetContext
func (v *Web) SetContext(x neat.Context) error {
v.ctx = x
x.State()["web-fitness"] = &v.fitness
x.State()["web-complexity"] = &v.complexity
x.State()["web-species"] = &v.species
x.State()["web-best"] = &v.best
return nil
}