golang:高阶函数与回调函数
高阶函数 当函数具备以下两种特性的时候,就可以称之为高阶函数: 函数可以作为另一个函数的参数(典型用法是回调函数) 函数可以返回另一个函数,即让另一个函数作为这个函数的返回值(典型用法是闭包) 一般来说,附带的还具备一个特性:函数可以作为一个值赋给变量: f := func(){...} f() 由于go中函数不能嵌套函数,所以函数返回函数的时候,就只能返回匿名函数。 示例 例如:将函数作为空一格…
高阶函数 当函数具备以下两种特性的时候,就可以称之为高阶函数: 函数可以作为另一个函数的参数(典型用法是回调函数) 函数可以返回另一个函数,即让另一个函数作为这个函数的返回值(典型用法是闭包) 一般来说,附带的还具备一个特性:函数可以作为一个值赋给变量: f := func(){...} f() 由于go中函数不能嵌套函数,所以函数返回函数的时候,就只能返回匿名函数。 示例 例如:将函数作为空一格…
package main import ( "fmt" "os" "os/signal" "syscall" "time" ) // 优雅退出go守护进程 func main() { //创建监听退出chan c := make(chan os.Signal) //监听指定信号 ctrl+c kill signal.Notify(c, syscall.SIGHUP, syscall.SIGINT,…
一、字符串解析类 1、ParseInt函数 func ParseInt(s string, base int, bitSize int) (i int64, err error) 返回字符串表示的整数值,接受正负号。 base指定进制(2到36),如果base为0,则会从字符串前置判断,"0x"是16进制,"0"是8进制,否则是10进制; bitSize指定结果必须能无溢出赋值的整数类型,0、8、…
1.首先去官网下载: 可以去Go官网中国 https://studygolang.com/dl 选择自己需要的版本 我下载的是go1.12.1.windows-amd64.msi 2.下载完成之后进行安装 选择安装位置,我选择在 D:\Go ,其他就是一直点下一步就可以了。 安装之后看一下目录结构 安装好了之后会直接将D:\Go\bin添加到系统环境变量Path中, 自己检查一下 若没有则自己…
Go语言提供了append函数,一般用于在切片尾部追加元素,然而在实际的项目(算法)中有时需要将追加的元素放到切片的首部(索引为0的位置),现将代码贴出来: package main import "fmt" func main() { res := make([]int, 0) for i := 0; i < 10; i++ { res = preInsertSlice(i+1, res)…
参考:Golang内存分配逃逸分析 - jimshi - 博客园 GO语言变量逃逸分析 - Go语言中文网 - Golang中文社区 总结下,就是: 1. 堆和栈 之前写c++的时候,栈是各种局部变量,函数结束就自动释放;堆就是使用new和malloc分配的,需要rd去关注啥时候分配,啥时候释放。在栈上分配内存比较快,而且回收也快,在堆上分配就耗费的资源比较多。而且,在栈上面分配的,函数结束后就自…
golang 使用 elasticsearch ik 分词器 相关学习网址 https://github.com/olivere/elastic/wiki https://github.com/olivere/elastic ik分词器 https://github.com/medcl/elasticsearch-analysis-ik 安装 参照词表找对应的 ik 版本 IK versionES…
文章来源:https://goframe.org/deploymen... 一、独立部署 使用GF开发的应用程序可以独立地部署到服务器上,设置为后台守护进程运行即可。这种模式常用在简单的API服务项目中。 服务器我们推荐使用*nix服务器系列(包括:Linux, MacOS, *BSD),以下使用Ubuntu系统为例,介绍如何部署使用GF框架开发的项目。 1. nohup 我们可以使用简单的noh…
查看消息时间戳的命令: kafka-console-consumer --bootstrap-server localhost:9092 --property print.timestamp=true --topic test --from-beginning 发现sarama生产者推送到kafka的CreateTime均为-1。而命令行推送到kafka的时间戳正常。 原因: sarama默认支持…
原文地址 守护进程 传统的后台服务一般作为守护进程(daemon)运行。linux 上创建 daemon 的步骤一般如下: 创建子进程,父进程退出;调用系统调用 setsid() 脱离控制终端;调用系统调用 umask() 清除进程 umask 确保 daemon 创建文件和目录时拥有所需权限;修改当前工作目录为系统根目录;关闭从父进程继承的所有文件描述符,并将标准输入/输出/错误重定向到 /de…