/trunk/Examples/go/variables/runme.go
Go | 67 lines | 47 code | 13 blank | 7 comment | 0 complexity | c2993f33ee08145fba560cd385417f93 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- // This example illustrates global variable access from Go.
- package main
- import (
- "fmt"
- "./example"
- )
- func main() {
- // Try to set the values of some global variables
- example.SetIvar(42)
- example.SetSvar(-31000)
- example.SetLvar(65537)
- example.SetUivar(123456)
- example.SetUsvar(61000)
- example.SetUlvar(654321)
- example.SetScvar(-13)
- example.SetUcvar(251)
- example.SetCvar('S')
- example.SetFvar(3.14159)
- example.SetDvar(2.1828)
- example.SetStrvar("Hello World")
- example.SetIptrvar(example.New_int(37))
- example.SetPtptr(example.New_Point(37, 42))
- example.SetName("Bill")
- // Now print out the values of the variables
- fmt.Println("Variables (values printed from Go)")
- fmt.Println("ivar =", example.GetIvar())
- fmt.Println("svar =", example.GetSvar())
- fmt.Println("lvar =", example.GetLvar())
- fmt.Println("uivar =", example.GetUivar())
- fmt.Println("usvar =", example.GetUsvar())
- fmt.Println("ulvar =", example.GetUlvar())
- fmt.Println("scvar =", example.GetScvar())
- fmt.Println("ucvar =", example.GetUcvar())
- fmt.Println("fvar =", example.GetFvar())
- fmt.Println("dvar =", example.GetDvar())
- fmt.Printf("cvar = %c\n", example.GetCvar())
- fmt.Println("strvar =", example.GetStrvar())
- fmt.Println("cstrvar =", example.GetCstrvar())
- fmt.Println("iptrvar =", example.GetIptrvar())
- fmt.Println("name =", example.GetName())
- fmt.Println("ptptr =", example.GetPtptr(), example.Point_print(example.GetPtptr()))
- fmt.Println("pt =", example.GetPt(), example.Point_print(example.GetPt()))
- fmt.Println("\nVariables (values printed from C)")
- example.Print_vars()
- // This line would not compile: since status is marked with
- // %immutable, there is no SetStatus function.
- // fmt.Println("\nNow I'm going to try and modify some read only variables")
- // example.SetStatus(0)
- fmt.Println("\nI'm going to try and update a structure variable.\n")
- example.SetPt(example.GetPtptr())
- fmt.Println("The new value is")
- example.Pt_print()
- fmt.Println("You should see the value", example.Point_print(example.GetPtptr()))
- }