Go基础(复杂类型):函数值

简介: 函数值函数也是值。它们可以像其它值一样传递。 函数值可以用作函数的参数或返回值。一、下面来看一个函数值的例子package mainimport ( "fmt" "math")fun...

函数值

函数也是值。它们可以像其它值一样传递。
函数值可以用作函数的参数或返回值。


一、下面来看一个函数值的例子

package main

import (
    "fmt"
    "math"
)

func compute(fn func(float64, float64) float64) float64 {
    return fn(3, 4)
}

func main() {
    hypot := func(x, y float64) float64 {
        //a=169
        a := x*x + y*y
        //这个地方是求平方根
        return math.Sqrt(a)
    }
    fmt.Println(hypot(5, 12))

    //这个地方是5
    fmt.Println(compute(hypot))

    //math.Pow()是x的y次幂
    //这里就是3的4次幂
    fmt.Println(compute(math.Pow))
}

输出结果:

API server listening at: 127.0.0.1:61828
13
5
81
目录
相关文章
|
3月前
|
编译器 Go 调度
Go 中的类型断言与静态转换
Go 中的类型断言与静态转换
|
3月前
|
JSON 安全 前端开发
类型安全的 Go HTTP 请求
类型安全的 Go HTTP 请求
|
20天前
|
Go
go语言常量的类型
【10月更文挑战第20天】
23 2
|
21天前
|
JSON 安全 网络协议
go语言使用内置函数和标准库
【10月更文挑战第18天】
14 3
|
2月前
|
Go
go函数
go函数
33 10
|
2月前
|
编译器 Go C++
Go to Learn Go之函数
Go to Learn Go之函数
28 0
|
2月前
|
存储 Go
Go: struct 结构体类型和指针【学习笔记记录】
本文是Go语言中struct结构体类型和指针的学习笔记,包括结构体的定义、成员访问、使用匿名字段,以及指针变量的声明使用、指针数组定义使用和函数传参修改值的方法。
|
2月前
|
编译器 Go 索引
Go数组、多维数组和切片(动态数组),及常用函数len(),cap(),copy(),append()在切片中的使用
本文介绍了Go语言中数组、多维数组和切片(动态数组)的基本概念和操作,包括数组的定义、初始化、访问,多维数组的定义和访问,以及切片的创建、使用和扩容。同时,还讲解了切片中常用的函数len()、cap()、copy()和append()的使用方法。
|
3月前
|
人工智能 JSON NoSQL
Go MongoDB Driver 中的 A D M E 类型是什么
Go MongoDB Driver 中的 A D M E 类型是什么
39 1
|
3月前
|
JSON 人工智能 编译器
Go json 能否解码到一个 interface 类型的值
Go json 能否解码到一个 interface 类型的值
30 1