1 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
通常,您幾乎肯定永遠(yuǎn)不會(huì)使用指向接口的指針。相反,您需要的是指向您的類型的指針來實(shí)現(xiàn)接口。
首先,確保指向您的類型的指針實(shí)現(xiàn)了接口:
type BINARY_EXPRESSION struct {
Operator string
Left, Right EXPRESSION_NODE
Position
}
// Note that pointer receivers
func (s *BINARY_EXPRESSION) expressionNode()
func (s *BINARY_EXPRESSION) GetPosition() (int, int) { return s.Line, s.Column }
然后你的解析函數(shù)將如下所示:
func (self *Parser) ParseBinaryExpression(
operators []string,
parser ExpressionParser,
) (EXPRESSION_NODE, error) {
// ... stuff ...
result = &BINARY_EXPRESSION{operator, result, right, self.position}
return result, nil
}
我建議您了解有關(guān) Go 接口以及如何定義實(shí)現(xiàn)它們的方法的更多信息:
- 1 回答
- 0 關(guān)注
- 105 瀏覽
添加回答
舉報(bào)