golang函数
一、函数语法
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函数的更多相关文章
- GO开发[四]:golang函数
函数 1.声明语法:func 函数名 (参数列表) [(返回值列表)] {} 2.golang函数特点: a. 不支持重载,一个包不能有两个名字一样的函数 b. 函数是一等公民,函数也是一种类型,一个 ...
- golang函数学习笔记
golang函数特点: a.不支持重载,一个包不能有两个名字一样的函数 b.函数是一等公民,函数也是一种类型,一个函数可以赋值给变量 c.匿名函数 d.多返回值 例子1 func add(a, b ...
- golang 函数作为类型
golang 函数作为类型 package main import "fmt" type A func(int, int) func (f A)Serve() { fmt.Prin ...
- electron/nodejs实现调用golang函数
https://www.jianshu.com/p/a3be0d206d4c 思路 golang 支持编译成c shared library, 也就是系统中常见的.so(windows下是dll)后缀 ...
- vim支持golang函数调整
golang函数跳转需要借助godef实现 godef安装如下 go get -v github.com/rogpeppe/godef go install -v github.com/rogpepp ...
- Golang函数-递归函数
Golang函数-递归函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Golang函数-不定参函数
Golang函数-不定参函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Golang函数-匿名函数与闭包函数
Golang函数-匿名函数与闭包函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Golang函数-函数的基本概念
Golang函数-函数的基本概念 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数的概述 1>.函数定义语法格式 Go语言函数定义格式如下: func 函数名( 函数参 ...
- golang 函数和方法
由于自己是搞python开发的,所以在学习go时,当看到函数和方法时,顿时还是挺蒙的,因为在python中并没有明显的区别,但是在go中却是两个完全不同的东西.在官方的解释中,方法是包含了接收者的函数 ...
随机推荐
- 用node.js express设置路径后 子路径下的页面访问静态资源路径出问题
在routes/news_mian.js 设置了访问news_main.html 的路径 '/',通知设置一个访问news-page.html的子路径'/newspage'子路径.但是在访问loacl ...
- 小tips:node起一个简单服务,打开本地项目或文件浏览
1.安装nodejs 2.在项目文件夹目录下创建一个js文件,命名server.js(自定义名称),内容如下 var http = require('http'); var fs = require( ...
- #WEB安全基础 : HTML/CSS | 0x10.1更多表单
来认识更多的表单吧,增加知识面 我只创建了一个index.html帮助你认识它们 以下是代码 <!DOCTYPE html> <html> <head> <m ...
- SAP MM 无价值物料管理的一种实现思路
SAP MM 无价值物料管理的一种实现思路 笔者所在的项目,客户工厂处于先期试生产阶段,尚未开始大规模的商业化生产,但是这并不影响客户集团总部的SAP项目实施.笔者于7月初加入该工厂的第2期SAP项目 ...
- 仿9GAG制作过程(四)
有话要说: 这次主要讲述主页面下拉刷新和上拉加载功能的实现. 主要是使用了SwipeRefreshLayout的布局方式,并在此基础上通过RecyclerView的特性增加了上拉加载的功能. 成果: ...
- gitbook 入门教程之使用 gitbook.com 在线开发电子书
gitbook 官网是官方提供的图书托管的在线平台,分为新版官网(需要FQ) https://www.gitbook.com/ 和旧版官网(无需FQ) https://legacy.gitbook.c ...
- DVWA 黑客攻防演练(二)暴力破解 Brute Froce
暴力破解,简称"爆破".不要以为没人会对一些小站爆破.实现上我以前用 wordpress 搭建一个博客开始就有人对我的站点进行爆破.这是装了 WordfenceWAF 插件后的统计 ...
- Spark dataframe【KV格式】模拟实现Map操作
代码实现 // rdd转化为df[kv格式]val df = sqlContext.createDataFrame(check_data_type, structType) .select(" ...
- EntityFramework Code-First 简易教程(六)-------领域类配置之DataAnnotations
EF Code-First提供了一个可以用在领域类或其属性上的DataAnnotation特性集合,DataAnnotation特性会覆盖默认的EF约定. DataAnnotation存在于两个命名空 ...
- 列表、enumerate()函数,以及查看数据类型所有的内置方法
随便看看 """ forList(): 测试list和enumerate()函数 examineFun(): 查看数据类型所有的内置方法 ""&quo ...