
Go 语言的函数
函数与其他语言的主要差异
- 可以有多个返回值
- 所有参数都是值传递:slice,map,channel会有传引用的错觉
- 函数可以作为变量的值
- 函数可以作为参数和返回值
Demo
package func_test
import (
"math/rand"
"testing"
"time"
)
// 返回一个0-10,0-20的随机数
func returnMultiValues() (int, int) {
// 初始化随机数的资源库, 如果不执行这行, 不管运行多少次都返回同样的值
rand.Seed(time.Now().UnixNano())
return rand.Intn(10), rand.Intn(20)
}
func TestFn(t *testing.T) {
// 如果只需要其中的一个值
a, b := returnMultiValues()
t.Log(a, b)
}
记录一个执行方法的时间
func TestFn(t *testing.T) {
// 如果只需要其中的一个值
a, b := returnMultiValues()
t.Log(a, b)
tsSF := timeSpent(slowFun)
t.Log(tsSF(10))
}
func timeSpent(inner func(op int) int) func(op int) int {
return func(n int) int {
// 开启时间
start := time.Now()
// 调用函数
ret := inner(n)
// 输出秒数
fmt.Println("time spent:", time.Since(start).Seconds())
return ret
}
}
func slowFun(op int) int {
time.Sleep(time.Second * 1)
return op
}
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术