本文整理汇总了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
}