MST

星途 面试题库

面试题:Go中如何简单实现函数链式调用

请描述在Go语言中实现函数链式调用的基本思路,并给出一个简单的示例代码,展示两个函数的链式调用。
41.6万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 基本思路
    • 在Go语言中实现函数链式调用,主要是通过返回一个包含方法的结构体实例来实现。每个方法返回同一个结构体实例,这样就可以在同一个实例上连续调用多个方法,从而实现链式调用。
  2. 示例代码
package main

import "fmt"

// 定义一个结构体
type Chain struct {
    value int
}

// 第一个方法
func (c *Chain) Method1() *Chain {
    c.value += 1
    return c
}

// 第二个方法
func (c *Chain) Method2() *Chain {
    c.value *= 2
    return c
}

func main() {
    result := Chain{1}.Method1().Method2()
    fmt.Println(result.value)
}

在上述代码中:

  • 定义了一个Chain结构体,它有一个int类型的字段value
  • Method1Method2方法都返回*Chain类型的指针,即结构体实例自身,使得可以进行链式调用。
  • main函数中,通过Chain{1}.Method1().Method2()实现了两个函数的链式调用,并最终打印出结果。