Is it possible to assign an infix operator to a variable?
operator := <<
If so how is it applied to arguments?
Is it possible to assign an infix operator to a variable?
operator := <<
If so how is it applied to arguments?
No, it's not possible to store an operator in a variable.
Perhaps the best way is to define a set of operations and have a wrapper struct with an Apply
method:
type Operation int
const (
Left Operation = iota
Right
)
type State struct {
Value int
}
func (s *State) Apply(o Operation) {
switch (o) {
case Left:
s.Value = s.value << 1
case Right:
s.Value = s.value >> 1
}
}
Sample use:
value := State{4} // original value
op := Left
value.Apply(op) // s.Value is now 8