git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12108 626c5289-ae23-0410-ae9c-e8d60b6d4f22
67 lines
2.1 KiB
Go
67 lines
2.1 KiB
Go
// 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()))
|
|
}
|