登录
首页 >  Golang >  Go问答

Golang:从字符串(函数名称)指向函数的指针?

来源:Golang技术栈

时间:2023-05-01 13:26:02 406浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《Golang:从字符串(函数名称)指向函数的指针?》,本文主要会讲到golang、指针等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

Golang:从字符串(函数名称)指向函数的指针?

正确答案

在 Go 中,函数被视为第一类对象,因此可以像其他类型的值一样进行传递和分配。你可以通过函数名获取函数的指针,然后将其分配给指针变量。

以下是一个示例代码,演示了如何从字符串(函数名称)获取函数的指针:

package main

import (
    "fmt"
)

// 定义一个函数类型,它接受两个 int 类型的参数并返回一个 int 类型的结果
type operation func(int, int) int

// 实现加法操作
func add(a, b int) int {
    return a + b
}

// 实现减法操作
func subtract(a, b int) int {
    return a - b
}

func main() {
    // 创建一个函数映射表,它将字符串函数名称映射到对应的函数
    functionMap := make(map[string]operation)
    functionMap["add"] = add
    functionMap["subtract"] = subtract

    // 从映射表中获取函数并调用
    result1 := functionMap["add"](10, 20)
    fmt.Println(result1)

    result2 := functionMap["subtract"](30, 10)
    fmt.Println(result2)
}

在这个示例代码中,我们定义了一个 operation 类型,它是一个函数类型,接受两个 int 类型的参数并返回一个 int 类型的结果。然后,我们实现了两个函数 addsubtract,它们分别执行加法和减法操作。

main 函数中,我们创建了一个函数映射表 functionMap,将字符串函数名称映射到对应的函数。我们可以使用映射表中的函数来执行加法和减法操作,如示例中所示。

到这里,我们也就讲完了《Golang:从字符串(函数名称)指向函数的指针?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>