Bruce Blog Bruce Blog
首页
  • CentOS
  • Ubuntu-Debian
  • 系统网络
  • 系统辅助工具
  • MySQL
  • Redis
  • Mongodb
  • Docker基础
  • Container基础
  • Kubernetes

    • Kubernetes基础
    • Kubernetes辅助
  • Container-Network
  • Jenkins
  • Gitlab
  • ArgoCD
  • Ansible
  • Terraform
  • AWS
  • MQ
  • NGINX
  • JumpServer
  • 基础
  • 函数模块
  • 框架
  • 基础

    • Golang环境
    • 语法
    • 数据类型与运算符
    • 分支语句
    • 循环语句
    • 数组
    • 切片
    • Map
    • String
    • 函数
    • 包的管理
    • 指针
    • 结构体
    • Go语言中的OOP
    • 方法和接口
    • 错误处理
  • Go进阶

    • Go进阶
  • Go框架

    • Go框架
  • Golang辅助

    • Golang辅助
  • CSS
  • HTML
  • JavaScript
  • 前端辅助
  • 常用命令
  • 性能监控工具
  • Windows下Docker使用
  • 日常学习
  • 其他导航

Bruce Tao

运维界的该溜子
首页
  • CentOS
  • Ubuntu-Debian
  • 系统网络
  • 系统辅助工具
  • MySQL
  • Redis
  • Mongodb
  • Docker基础
  • Container基础
  • Kubernetes

    • Kubernetes基础
    • Kubernetes辅助
  • Container-Network
  • Jenkins
  • Gitlab
  • ArgoCD
  • Ansible
  • Terraform
  • AWS
  • MQ
  • NGINX
  • JumpServer
  • 基础
  • 函数模块
  • 框架
  • 基础

    • Golang环境
    • 语法
    • 数据类型与运算符
    • 分支语句
    • 循环语句
    • 数组
    • 切片
    • Map
    • String
    • 函数
    • 包的管理
    • 指针
    • 结构体
    • Go语言中的OOP
    • 方法和接口
    • 错误处理
  • Go进阶

    • Go进阶
  • Go框架

    • Go框架
  • Golang辅助

    • Golang辅助
  • CSS
  • HTML
  • JavaScript
  • 前端辅助
  • 常用命令
  • 性能监控工具
  • Windows下Docker使用
  • 日常学习
  • 其他导航
  • 基础

    • Golang环境

    • 语法

    • 数据类型与运算符

    • 分支语句

    • 循环语句

    • 数组

    • 切片

    • Map

    • String

    • 函数

      • 函数
      • 函数的使用
      • 函数的参数
      • 函数的返回值
      • return语句
      • 函数中变量作用域
      • 递归函数
      • defer语句
      • 函数的数据类型
      • 函数的本质
        • 匿名函数
        • 回调函数
        • 闭包
      • 包的管理

      • 指针

      • 结构体

      • Go语言中的OOP

      • 方法和接口

      • 错误处理

    • Go进阶

    • Go框架

    • Golang辅助

    • Golang
    • 基础
    • 函数
    Bruce
    2022-10-27
    目录

    函数的本质

    # 一、函数的本质

    # 函数
    • 加(),调用
    # 注意点
    • 函数作为一种复合数据类型,可以看做是一种特殊的变量.
    • 函数名(): 将函数进行调用,函数中的代码会全部执行,然后将return的结果返回给调用处
    • 函数名: 指向函数体的内存地址
    # 示例代码
    package main
    
    import "fmt"
    
    func main() {
    	/*
    		Go语言的数据类型:
    			数值类型: 整数,浮点
    				进行运算操作,加减乘除,打印
    			字符串:
    				可以获取单个字符串,截取子串,遍历,strings包下的函数操作...
    			数组,切片,map...
    				存储数据,修改数据,获取数据,遍历数据...
    			函数:
    				加(),进行调用
    
    			注意点:
    				函数作为一种复合数据类型,可以看做是一种特殊的变量.
    				函数名(): 将函数进行调用,函数中的代码会全部执行,然后将return的结果返回给调用处
    				函数名: 指向函数体的内存地址
    	*/
    	//	1.整数
    	a := 10
    	// 运算
    	a += 5
    	fmt.Println("a:", a)
    	//2.数组,切片,map...,容器
    	b := [4]int{1, 2, 3, 4}
    	b[0] = 100
    	for i := 0; i < len(b); i++ {
    		fmt.Printf("%d\t", b[i])
    	}
    	fmt.Println()
    
    	//3.函数做一个变量
    	fmt.Printf("%T\n", fun1)
    	fmt.Println(fun1) //fun1()-fun1  0xe4cee0,看做函数名对应的函数体的地址
    
    	//4.直接定义一个函数类型的变量
    	var c func(int, int)
    	fmt.Println(c) // <nil> 空
    	c = fun1       //将fun1的值(函数体的地址)赋值给c
    	fmt.Println(c)
    
    	fun1(10, 20)
    	c(100, 200)
    
    	res1 := fun2       //将fun2的值(函数的地址)赋值给res1,res1和fun2指向同一个函数体
    	res2 := fun2(1, 2) // 将fun2函数进行调用,将函数的执行结果赋值给res2,相当于: a+b
    	fmt.Println(res1)
    	fmt.Println(res2)
    }
    
    func fun2(a, b int) int {
    	return a + b
    }
    
    func fun1(a, b int) {
    	fmt.Printf("a:%d,b:%d\n", a, b)
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    上次更新: 2024/04/09, 16:48:42
    函数的数据类型
    匿名函数

    ← 函数的数据类型 匿名函数→

    最近更新
    01
    AWS NAT-NetWork-Firwalld配置(一)
    04-09
    02
    AWS NAT-NetWork-Firwalld配置(二)
    04-09
    03
    kubernetes部署minio对象存储
    01-18
    更多文章>
    Theme by Vdoing | Copyright © 2019-2024 Bruce Tao Blog Space | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式