First, you shouldn't assume language X has any equivalent for feature Y in language Z. Also you should write/design code for the language you're using rather than designing as if it was another language and then translating line-by-line or function-by-function.
As comments mentioned, operators are builtin in Go with no operator overloading or functional equivalents. If you haven't already you should take the Go Tour and read the Language Specification to see what Go does have.
If you really want/need to do something like you ask this is one way:
package main
import "fmt"
type Compare func(int, int) bool
func DoCompare(cmp Compare, a, b int) bool {
return cmp(a, b)
}
var (
CmpLessThan = func(a, b int) bool { return a < b }
CmpLessThanOrEqual = func(a, b int) bool { return a <= b }
CmpGreaterThan = func(a, b int) bool { return a > b }
CmpGreaterThanOrEqual = func(a, b int) bool { return a >= b }
)
func main() {
fmt.Println(DoCompare(CmpLessThan, 1, 2))
}
Go Playground.
Normally if something like this is needed, instead of multiple comparison functions, a single compare function is used that returns <0, 0, or, >0 (e.g. -1, 0, +1) for less-than, equal, greater-than. For example, big.Int.Cmp
.