一、函数语法

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. Oracle day02 函数

    order by关键字作用:用于对查询结果进行排序 用法:    1.利用asc .desc对排序列进行升序或降序    2.order by后可以添加多个列(逗号分隔),当一个列的值相同时,在按第二 ...

  2. 如何高效地遍历 MongoDB 超大集合?

    GitHub 仓库:Fundebug/loop-mongodb-big-collection 本文使用的编程语言是 Node.js,连接 MongoDB 的模块用的是mongoose.但是,本文介绍的 ...

  3. wepy框架自定义组件编译报错not Found File XXX.wxss

    今天在自己写wepy框架组件的时候编译后报错not Found File XXX.wxss 我去,当时我很难受啊,调用组件时结构和逻辑都正常,一写样式就原地爆炸 解决之路:1.先打开编译后的dist文 ...

  4. SBC数据格式转换软件

    北京博信施科技有限公司是一家专业从事数据格式转换.数据处理领域研发软件产品和解决方案实施的技术型公司.在当今信息时代,PDF文档格式是在Internet上进行电子文档发行和数字化信息传播的理想文档格式 ...

  5. 动态BGP和静态BGP的含义与区别

    1.在华为云上选购虚拟机时,会让用户选择动态BGP还是静态BGP, 全动态BGP可根据设定的寻路协议第一时间自动优化网络结构,以保持客户使用的网络持续稳定.高效. 静态BGP中的网络结构发生变化,运营 ...

  6. git上传新项目到coding

    1:coding.net注册账号,并创建项目.可以将readme.txt打上勾 2:cd到本机的项目文件夹下 在git中代表workspace 3:mac用户用ls -all ,linux用户用ll ...

  7. 清清楚楚地搭建MongoDB数据库(以搭建4.0.4版本的副本集为例)

    数据的目录文件层次设计 我们一般采用多实例的方式,而不是将所有的数据库尽可能地放在一个实例中. 主要基于以下考虑: 1:不同业务线对应的数据库放在不同的实例上,部分操作的运维时间容易协调等到. 2:相 ...

  8. RHEL 6.6下Python 2.6.6升级到Python 3.6.6

      最近一段时间shell脚本写得很溜,很有成就感,一想到被自己落下的Python就感到十分心虚.开始坚持学习Python!先将自己的测试机器的Python升级到Python 3.6.6.简单整理.记 ...

  9. win10 家庭版不支持gpedit.msc的解决办法

    win10 家庭版不支持gpedit.msc的解决办法 1.建立一个批处理文件内容如下: @echo off pushd "%~dp0" dir /b %systemroot%\W ...

  10. leaflet动态路径

    在leaflet中使用动态路径需要结合插件使用,对比了好几个插件,最终找到leaflet.motion比较合适: leaflet地址:https://leafletjs.com/ leaflet.mo ...