一、函数语法

func 函数名(形参列表) (返回值列表){

......

return 返回值

}

例如:

package main
import "fmt" func test_func(n1 int,n2 int) (int){
var ret int
ret = n1 + n2
return ret
} func main(){
var f int
f = test_func(1,3)
fmt.Printf("Type: %T Value: %v\n",f,f) } ##结果##
Type: int Value: 4

  

二、递归函数

例子

package main
import "fmt" func digui_func(n1 int){
if n1 > 2 {
n1--
fmt.Println(n1)
digui_func(n1)
}
} func main(){
digui_func(5)
} ##结果##
4
3
2

  

三、init函数(初始化函数)

没一个源文件都可以包含一个init函数,init函数校准main函数执行前执行。

例子:

package main
import "fmt" func init(){
fmt.Println("init.....")
} func main(){
fmt.Println("main.....")
} ##结果##
init.....
main.....

  

四、匿名函数

例子:

package main
import "fmt" func main(){
res := func(n1,n2 int) int{
return n1 + n2
} var s1 int
var s2 int
s1 = res(1,2)
fmt.Println(s1)
s2 = res(3,4)
fmt.Println(s2)
} ##结果##
3
7

  

全局匿名函数

例子:

package main

var (
res := func(n1,n2 int) int{
return n1 + n2
} )

  

五、闭包函数

例子:

package main
import "fmt" func bibao() func (int) int {
var n int = 10
return func (x int) int {
n = n + x
return n
}
} func main(){
f := bibao()
f1 := bibao()
fmt.Println(f(1))
fmt.Println(f1(2)) } ##结果##
11
12

  

六、函数的defer

为了在函数执行完成后,及时释放资源,go的设计者提供了defer(延时机制)

适合用再关闭文件、关闭数据库连接等

例子:

package main
import "fmt" func test() int {
defer fmt.Println("s1")
defer fmt.Println("s2")
var ss int = 10
fmt.Println("s3")
return ss
} func main(){
ret := test()
fmt.Println(ret)
} ##结果##
s3
s2
s1
10

  

golang函数的更多相关文章

  1. GO开发[四]:golang函数

    函数 1.声明语法:func 函数名 (参数列表) [(返回值列表)] {} 2.golang函数特点: a. 不支持重载,一个包不能有两个名字一样的函数 b. 函数是一等公民,函数也是一种类型,一个 ...

  2. golang函数学习笔记

    golang函数特点: a.不支持重载,一个包不能有两个名字一样的函数 b.函数是一等公民,函数也是一种类型,一个函数可以赋值给变量 c.匿名函数 d.多返回值   例子1 func add(a, b ...

  3. golang 函数作为类型

    golang 函数作为类型 package main import "fmt" type A func(int, int) func (f A)Serve() { fmt.Prin ...

  4. electron/nodejs实现调用golang函数

    https://www.jianshu.com/p/a3be0d206d4c 思路 golang 支持编译成c shared library, 也就是系统中常见的.so(windows下是dll)后缀 ...

  5. vim支持golang函数调整

    golang函数跳转需要借助godef实现 godef安装如下 go get -v github.com/rogpeppe/godef go install -v github.com/rogpepp ...

  6. Golang函数-递归函数

    Golang函数-递归函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  7. Golang函数-不定参函数

    Golang函数-不定参函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  8. Golang函数-匿名函数与闭包函数

    Golang函数-匿名函数与闭包函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  9. Golang函数-函数的基本概念

    Golang函数-函数的基本概念 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数的概述 1>.函数定义语法格式 Go语言函数定义格式如下: func 函数名( 函数参 ...

  10. golang 函数和方法

    由于自己是搞python开发的,所以在学习go时,当看到函数和方法时,顿时还是挺蒙的,因为在python中并没有明显的区别,但是在go中却是两个完全不同的东西.在官方的解释中,方法是包含了接收者的函数 ...

随机推荐

  1. linux下tomcat启动很慢的解决办法

    1.用vim编辑器打开tomcat的bin目录下的catalina.sh [root@iz09a32x1sghz3z bin]# vi /usr/local/src/java/tomcats/tomc ...

  2. 2018.12/17 function 的闭包

    1.闭包:函数在调用的时候会形成一个私有的作用域,对内部变量起到保护的作用,这就是闭包. 2.变量销毁: 1.人为销毁  var a=12; a=null 2.自然销毁  函数调用完成之后 浏览器会自 ...

  3. React Native基础&入门教程:调试React Native应用的一小步

    React Native(以下简称RN)为传统前端开发者打开了一扇新的大门.其中,使用浏览器的调试工具去Debug移动端的代码,无疑是最吸引开发人员的特性之一. 试想一下,当你在手机屏幕按下一个按钮, ...

  4. Python进阶之模块

    在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很 ...

  5. 多维数据库 Oracle Essbase 和 IBM Cogons 底层原理

    多维数据库(Multi Dimensional Database,MDD)使用Dimension(维度)和Cube(数据立方体.数据集市)模型描述数据. 多维数据模型 关系型数据库(Relationa ...

  6. js 学习之路7:switch/case语句的使用

    语法格式: switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代 ...

  7. 【学习】Linux Shell脚本实例之一

    1.程序流程控制实例 程序流程控制,实际上就是改变程序的执行顺序.程序在执行过程中若流程被改变,就可能导致输出不同,因此利用这一特性就能够实现程序执行结果的控制.程序流程控制可分为“选择”和“循环”这 ...

  8. centosFTP服务搭建及权限配置

    引用一个其他大佬对vsftpd的描述: vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的 ...

  9. VMware实现iptables NAT及端口映射

    1. 前言 本文只讲解实战应用,不会涉及原理讲解.如果想要了解iptables的工作流程或原理可参考如下博文. 具体操作是在PC机的VMware虚拟机上进行的,因此涉及的地址都是内网IP.在实际工作中 ...

  10. Netty初体验

    package netty_starter; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFut ...