blob: 0cf340f51a3dccae9d07d1019f5d4036931e4b59 [file] [log] [blame]
package main
import (
"fmt"
. "example"
)
func main() {
// First create some objects using the pointer library.
fmt.Println("Testing the pointer library")
a := New_intp()
b := New_intp()
c := New_intp()
Intp_assign(a, 37)
Intp_assign(b, 42)
fmt.Println(" a =", a)
fmt.Println(" b =", b)
fmt.Println(" c =", c)
// Call the add() function with some pointers
Add(a, b, c)
// Now get the result
res := Intp_value(c)
fmt.Println(" 37 + 42 =", res)
// Clean up the pointers
Delete_intp(a)
Delete_intp(b)
Delete_intp(c)
// Now try the typemap library
// Now it is no longer necessary to manufacture pointers.
// Instead we use a single element slice which in Go is modifiable.
fmt.Println("Trying the typemap library")
r := []int{0}
Sub(37, 42, r)
fmt.Println(" 37 - 42 = ", r[0])
// Now try the version with return value
fmt.Println("Testing return value")
q := Divide(42, 37, r)
fmt.Println(" 42/37 = ", q, " remainder ", r[0])
}