面试题答案
一键面试- 基本思路:
- 在Go语言中,要实现接口链式调用,首先定义一个接口,接口中包含需要链式调用的方法。
- 实现该接口的结构体,在每个方法中返回接口类型的指针(通常是
*struct
),这样就能在调用一个方法后继续调用下一个方法,从而实现链式调用。
- 示例代码:
package main
import "fmt"
// 定义接口
type Chainable interface {
Step1() Chainable
Step2() Chainable
}
// 实现接口的结构体
type Chain struct{}
// 实现Step1方法
func (c *Chain) Step1() Chainable {
fmt.Println("执行Step1")
return c
}
// 实现Step2方法
func (c *Chain) Step2() Chainable {
fmt.Println("执行Step2")
return c
}
func main() {
chain := &Chain{}
chain.Step1().Step2()
}
上述代码中,Chainable
接口定义了Step1
和Step2
两个方法,Chain
结构体实现了这两个方法。在main
函数中,通过chain.Step1().Step2()
实现了接口的链式调用。