| package main |
| |
| import ( |
| "fmt" |
| |
| . "swigtests/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]) |
| } |