一、函数语法

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. 学JAVA第九天,for循环算质数及for遍历数组的方法。

    昨天终于收到了评论,老开心了!!! 算质数之前是我最怕的一件事,以前上学不好好学,之前学C#的时候也没好好研究, 直到今天老师逼我要用JAVA算质数,硬着头皮琢磨老半天才琢磨透,现在看来也挺简单的. ...

  2. java实现字符串数字部分自增

    实现添加员工时对工号进行自增长 思路:后台获取数据库中最后一条员工数据的工号,对其进行自增再传入前端 mybatis映射文件:获取最后一条数据 <select id="getLastN ...

  3. Java设计模式之【工厂模式】(简单工厂模式,工厂方法模式,抽象工厂模式)

    Java设计模式之[工厂模式](简单工厂模式,工厂方法模式,抽象工厂模式) 工厂模式出现的原因 在java中,创建一个对象最简单的方法就是使用new关键字.但在一些复杂的业务逻辑中,创建一个对象不只需 ...

  4. html5 拖拽上传文件时,屏蔽浏览器默认打开文件

    参考: https://www.cnblogs.com/kingsm/p/9849339.html

  5. nginx在代理转发地图瓦片数据中的应用

    最近有这样一个需求,需要将arcgis server发布的地图瓦片放在移动硬盘中,系统演示的时候,直接调用本地的地图瓦片,而非远程的,主要是为了系统演示的时候加快地图访问速度. 而且需要在任意电脑运行 ...

  6. SQL Server中LIKE %search_string% 走索引查找(Index Seek)浅析

      在SQL Server的SQL优化过程中,如果遇到WHERE条件中包含LIKE '%search_string%'是一件非常头痛的事情.这种情况下,一般要修改业务逻辑或改写SQL才能解决SQL执行 ...

  7. nginx多server配置记录

    直接在配置文件(/etc/nginx/nginx.conf)中添加如下代码: server { listen 8080; server_name 192.168.100.174:8080; root ...

  8. SQL Server数据库————连接查询和分组查询

    SQL Server数据库————连接查询和分组查询 分组查询 select 列from  <表名> where  …… group by  列 注意:跟order  by一样group ...

  9. 网络中的NAT模式

    一.概述 NAT英文全称是"Network Address Translation",中文意思是"网络地址转换",它是一个IETF(Internet Engin ...

  10. 安装指定版本的docker服务

    参考博客:Docker CE 镜像源站 参考博客:docker启动异常driver not supported 1. 说明 之前部署docker服务的时候都是安装最新的docker版本,并使用dock ...