PageRenderTime 59ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Examples/test-suite/go/member_pointer_runme.go

#
Go | 49 lines | 26 code | 16 blank | 7 comment | 2 complexity | d523db1260a574266728b85b71600e6e MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. // Example using pointers to member functions
  2. package main
  3. import "fmt"
  4. import . "./member_pointer"
  5. func check(what string, expected float64, actual float64) {
  6. if expected != actual {
  7. panic(fmt.Sprintf("Failed: %s Expected: %f Actual; %f", what, expected, actual))
  8. }
  9. }
  10. func main() {
  11. // Get the pointers
  12. area_pt := Areapt()
  13. perim_pt := Perimeterpt()
  14. // Create some objects
  15. s := NewSquare(10)
  16. // Do some calculations
  17. check("Square area ", 100.0, Do_op(s, area_pt))
  18. check("Square perim", 40.0, Do_op(s, perim_pt))
  19. _ = GetAreavar()
  20. _ = GetPerimetervar()
  21. // Try the variables
  22. check("Square area ", 100.0, Do_op(s, GetAreavar()))
  23. check("Square perim", 40.0, Do_op(s, GetPerimetervar()))
  24. // Modify one of the variables
  25. SetAreavar(perim_pt)
  26. check("Square perimeter", 40.0, Do_op(s, GetAreavar()))
  27. // Try the constants
  28. _ = AREAPT
  29. _ = PERIMPT
  30. _ = NULLPT
  31. check("Square area ", 100.0, Do_op(s, AREAPT))
  32. check("Square perim", 40.0, Do_op(s, PERIMPT))
  33. }