github.com/goplus/gop@v1.2.6/testdata/overloadop1/overloadop.gop (about) 1 type foo struct { 2 } 3 4 func (a foo) + (b foo) (ret foo) { 5 println "a + b" 6 return 7 } 8 9 func (a foo) - (b foo) (ret foo) { 10 println "a - b" 11 return 12 } 13 14 func (a foo) -> (b foo) { 15 println "a -> b" 16 } 17 18 func (a foo) <> (b foo) { 19 println "a <> b" 20 } 21 22 func -(a foo) (ret foo) { 23 println "-a" 24 return 25 } 26 27 func ++(a foo) { 28 println "a++" 29 } 30 31 func (a foo) != (b foo) bool { 32 println "a != b" 33 return true 34 } 35 36 var a, b foo 37 var c = a + b 38 var d = a - b 39 var e = -a 40 var f = a != b 41 println f 42 a++ 43 a -> b 44 a <> b