MST

星途 面试题库

面试题:Go中接口链式调用的基础实现

请阐述在Go语言中实现接口链式调用的基本思路,并给出一个简单的示例代码,包含至少两个链式调用的方法。
47.1万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 基本思路
    • 在Go语言中,要实现接口链式调用,首先定义一个接口,接口中包含需要链式调用的方法。
    • 实现该接口的结构体,在每个方法中返回接口类型的指针(通常是*struct),这样就能在调用一个方法后继续调用下一个方法,从而实现链式调用。
  2. 示例代码
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接口定义了Step1Step2两个方法,Chain结构体实现了这两个方法。在main函数中,通过chain.Step1().Step2()实现了接口的链式调用。