| 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]) | |
| } |