随笔分类 - go
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。
摘要:WaitGroup 是什么以及它能为我们解决什么问题? WaitGroup在go语言中,用于线程同步,单从字面意思理解,wait等待的意思,group组、团队的意思,WaitGroup就是指等待一组,等待一个系列执行完成后才会继续向下执行。 正常情况下,goroutine的结束过程是不可控制的,我们
阅读全文
摘要:延时调用 AfterFunc go function() func function() { // TODO 具体逻辑 // 每5分钟执行一次,递归调用自己 time.AfterFunc(5*time.Minute, function) } 打点器 Tickers package main impo
阅读全文
摘要:切片是 Go 中的一种基本的数据结构,使用这种结构可以用来管理数据集合。切片的设计想法是由动态数组概念而来,为了开发者可以更加方便的使一个数据结构可以自动增加和减少。但是切片本身并不是动态数据或者数组指针。切片常见的操作有 reslice、append、copy。与此同时,切片还具有可索引,可迭代的
阅读全文
摘要:简介 地表 最强大、最方便 和 最流行 的 Go 语言 INI 文件操作库 灵活的数据源 不光光可以从文件读取配置,还支持 []byte 类型的纯数据读取和基于 io.ReadCloser 的流式读取。 多种格式兼容 各种文件种类的广泛支持,包括但不限于 my.cnf、.gitconfig 甚至不可
阅读全文
摘要:合并两个整型切片,返回没有重复元素的切片,有两种去重策略 1. 通过双重循环来过滤重复元素(时间换空间) // 通过两重循环过滤重复元素 func RemoveRepByLoop(slc []int) []int { result := []int{} // 存放结果 for i := range
阅读全文
摘要:直接部署: 1、将程序所需要的文件如配置文件和生成的可执行文件拷贝到linux中 2、直接执行./main命令,启动程序 (main是go编译生成的可执行文件) 如果报Permission denied错误,将可执行文件赋予可执行权限 chmod -R 755 main 在后台启动程序 ./main
阅读全文
摘要:前言 在进行Go开发的时候,go env 可以设置Go的环境变量信息 GOOS 的默认值是我们当前的操作系统, 如果 windows,linux,注意 mac os 操作的上的值是darwin。 GOARCH 则表示 CPU 架构,如 386,amd64,arm 等。 CMD命令行中 在CMD命令行
阅读全文
摘要:在开发中,将时间转换成json时,默认是把时间转换为 RFC3339 格式 2018-01-14T21:45:54+08:00 这个貌似是GO的诞生的时间 先来看看time包中对格式的常量定义 const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate =
阅读全文
摘要:Go中数学运算和比较运算要求包含的值具有相同的类型。如果不是的话,则在尝试运行代码时会报错。 为变量分配新值也是如此。如果所赋值的类型与变量的声明类型不匹配,也会报错。 解决方法是使用转换,它允许你将值从一种类型转换为另一种类型。只需提供要将值转换成的类型,后面紧接着是在圆括号中的要转换的值。 结果
阅读全文
摘要:字符串常用语表示一系列文本字符,而Go的符文(rune)则用于表示单个字符。 字符串字面量由双引号(")包围,但rune字面量由单引号(')包围。 Go程序几乎可以使用地球上任何语言的任何字符,因为Go使用Unicode标准来存储rune。rune被保存为数字代码,而不是字符本身,如果你把rune传
阅读全文
摘要:math/rand包有一个Intn函数,可以生成一个随机数,所以我们需要导入math/rand。然后调用rand.Intn生成随机数。 等一下!Intn来自math/rand包,那为什么我们调用包的时候使用的是rand.Intn,而不是math/rand.Intn呢? 一个是包的导入路径,另一个是包
阅读全文
摘要:变量声明 在Go中,变量是包含值的一块存储。可以使用变量声明为变量命名。只需使用var关键字,后跟所需的名称以及变量将保存的值的类型。 一旦你声明了一个变量,就可以用=为它分配该类型的任何值: quantity = 2 customerName = "xiaoming" 还可以在同一语句中为多个变量
阅读全文
摘要:匿名函数是一种没有函数名的函数,即定义即使用;闭包作为一种携带状态的函数,我们可以简单地将它理解为“对象”,因为它同时具备状态和行为。 匿名函数 匿名函数没有函数名,只有函数体,它只有在被调用的时候才会初始化。匿名函数一般被当作一种类型赋值给函数类型的变量,经常被用作回调函数。 Go语言的匿名函数的
阅读全文
摘要:go module基本使用 // 创建目录,初始化新项目 mkdir beemod cd beemod go mod init beemod 创建 server.go 文件 package main import "github.com/astaxie/beego" func main() { be
阅读全文
摘要:bee must have one register DataBase alias named default 在你初始化db,注册默认数据库时,看看你是否import初始化注册数据库驱动driver import ( _ "github.com/go-sql-driver/mysql" _ "gi
阅读全文
摘要:简介 什么是grpc grpc是一个由google推出的、高性能、开源、通用的rpc框架。它是基于HTTP2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言。 什么是protobuf buffers ProtoBuf buffer 是一种数据表达方式,以.p
阅读全文
摘要:时间戳与时间格式相互转化 例一 // 时间戳转时间 str_time := time.Unix(1617279282,0).Format("2006-01-02 15:04:05") // 时间转时间戳 local, err := time.LoadLocation("Asia/Shanghai")
阅读全文
摘要:前言 strconv 主要用于字符串和基本类型的数据类型的转换 s := "aa"+100 //字符串和整形数据不能放在一起 所以需要将 100 整形转为字符串类型 //+号在字符串中表示字符串的连接 在整形中表示数据的计算 int 转 string 类型 s := strconv.Itoa(23)
阅读全文
摘要://是否包含指定的字符串中任意一个字符 有一个出现过 就返回true fmt.Println(strings.ContainsAny(s1,"glass")) //返回指定字符出现的次数 fmt.Println(strings.Count(s1,"g")) //文本的开头 fmt.Println(s
阅读全文
摘要:go math/rand package rand import "math/rand" rand包实现了伪随机数生成器。 math_rand go官方标准文档 随机数从资源生成。包水平的函数都使用的默认的公共资源。该资源会在程序每次运行时都产生确定的序列。如果需要每次运行产生不同的序列,应使用Se
阅读全文