Skip to content

Commit

Permalink
Update documentation for compiled scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
d5 committed Feb 1, 2019
1 parent 6a663c6 commit 4f46460
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion docs/interoperability.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,23 @@ func main() {

// retrieve value of 'a'
a := c.Get("a")
fmt.Println(a.Int())
fmt.Println(a.Int()) // prints "30"

// re-run after replacing value of 'b'
if err := c.Set("b", 20); err != nil {
panic(err)
}
if err := c.Run(); err != nil {
panic(err)
}
fmt.Println(c.Get("a").Int()) // prints "40"
}
```

A variable `b` is defined by the user before compilation using [Script.Add](https://godoc.org/github.com/d5/tengo/script#Script.Add) function. Then a compiled bytecode `c` is used to execute the bytecode and get the value of global variables. In this example, the value of global variable `a` is read using [Compiled.Get](https://godoc.org/github.com/d5/tengo/script#Compiled.Get) function. See [documentation](https://godoc.org/github.com/d5/tengo/script#Variable) for the full list of variable value functions.

Value of the global variables can be replaced using [Compiled.Set](https://godoc.org/github.com/d5/tengo/script#Compiled.Set) function. But it will return an error if you try to set the value of un-defined global variables _(e.g. trying to set the value of `x` in the example)_.

### Type Conversion Table

When adding a Variable _([Script.Add](https://godoc.org/github.com/d5/tengo/script#Script.Add))_, Script converts Go values into Tengo values based on the following conversion table.
Expand Down

0 comments on commit 4f46460

Please sign in to comment.