Как в go сделать переменную с двумя типами и функцию вовращающую два типа

Как сделать так чтобы в переменной left можно было хранить как NumberNode так и BinaryOperationNode, и чтобы функция могла вовращать оба эти типа?

Код:

func (p *Parser) Term() BinaryOperationNode {
    left := p.Factor() // Factor возвращает NumberNode

    for p.CurrentToken.Type_ == token.Number {
        operation := p.CurrentToken
        right := p.Factor()
        left := node.BinaryOperationNode{LeftOperand: left.Value, RightOperand: right.Value, Operation: operation.Value}

    }

    return left
}

Ответы (0 шт):