zoukankan      html  css  js  c++  java
  • Go-数据类型-函数

    函数类型

    • 函数声明本质上是定义了函数类型的变量

      package main
      
      import "fmt"
      
      // 定义了函数,本质上是在全局作用域中声明了一个函数类型的变量 info 其类型为 `func ()`
      func info() {
      	fmt.Println("beimenchuixue")
      }
      
      // 等价于 结果上完全等价  info函数 <=> infoVar函数
      var infoVar = func() {
          fmt.Println("beimenchuixue")
      }
      
      func main() {
      	// 触发名称查找,首先找当前作用域,然后按作用域上下文向上找,全局作用域中找到了 info
      	info()
      	// 打印函数变量的类型
      	fmt.Printf("函数变量:%T", info)
      }
      
    • 既然函数类型和基本类型一致,那么其具有普通变量的行为(作为参数或返回值)

      package main
      
      import "fmt"
      
      // 函数类型
      func funcType(name string, t string) (info string) {
      	info = name + "-" + t
      	return
      }
      
      //作为普通参数
      func one(join func(string, string) string, n, t string)  string{
      	return join(n, t)
      }
      
      func main() {
          // 函数作为普通参数
      	res := one(funcType, "age", "int")
      	fmt.Println(res)
      }
      
  • 相关阅读:
    MRO C3算法 super的运用
    约束 抛异常
    反射
    Ubuntu
    Vim
    Vim
    Arithmetic
    Docker-常用命令
    Docker
    Docker-LAMP开发环境
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/14111613.html
Copyright © 2011-2022 走看看