是否可以为变量分配中缀运算符?

operator := <<

如果是这样,它将如何应用于参数?

最佳答案

不,不可能将运算符存储在变量中。

也许最好的方法是定义一组操作并使用Apply方法具有包装器结构:

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 使用:
value := State{4} // original value
op := Left
value.Apply(op) // s.Value is now 8

关于go - 如何在golang中为变量分配运算符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46871565/

10-16 22:34