zoukankan      html  css  js  c++  java
  • 函数 「go

    声明函数

    在go语言中声明函数像下面这样。

    // 单参数,单返回值
    func MyFuc(v1 int) int {
    	// 参数 v1 int类型 返回值int类型
    }
    // 多参数,多返回值
    func MyFuc(v1 int, v2 string) (int,string) {
    	// 参数 v1 int类型v2 string类型 返回值两个值 类型分别为 int,string
    }
    

    多返回值函数

    go语言中的函数可以有多个返回值。

    func MyFuc(v1 int, v2 string) (int,string) {
    	return v1,v2
    }
    

    调用函数的时候需要用多个变量来接收。

    a, b := MyFuc(1,"hello bear")
    

    这样变量a就获取到了int值1,变量b获取到string类型值hello bear。

    有时候我们只需要获取到其中一个变量该怎么办呢?

    _, b := MyFuc(1,"hello bear")
    

    不需要的变量用_代替就可以了。

    函数作为参数和返回值

    go语言中函数可以作为函数的参数和返回值

    func MyFucFuc(f func(v1 int) int) func(v1 int) int {
    	return f
    }
    

    这个写法示例中 传入了一个类型为func(v1 int) int的函数,返回一个func(v1 int) int类型的函数。这个例子没有实际的意义,实际使用的时候,我们可以通过这种模式在函数执行前做一些操作,就像装饰器模式那样。

    可变参数

    可变参数就是参数的数量不确定,写法如下。

    func MyFuc(v1 ...int) int {
    	
    }
    

    这样变量v1其实是一个数组,遍历v1获取变量。

    defer函数

    defer函数的作用像java语言中的finally,最后执行

    func MyFuc1(v1 int) int {
    	//do something
    }
    
    func MyFuc2(v1 int) int {
      defer MyFuc1(1)
    	//do something
    }
    

    上面代码中,执行MyFuc2函数,在函数体中的所有代码执行完成,才会执行MyFuc1(1) ,defer下面的代码发生错误,defer 的函数也会照常执行,这适合我们用来写一些释放资源的功能或者是日志记录

  • 相关阅读:
    结对编程(阶段二)
    结对编程 第一阶段
    Git实验
    webpack02
    webpack01
    实验五 单元测试
    实验四 代码审评
    UML建模工具的安装和使用
    实验二 结对编程(阶段二)
    博客园背景的修改
  • 原文地址:https://www.cnblogs.com/ljsh/p/13944354.html
Copyright © 2011-2022 走看看