随笔分类 - go
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。
摘要:匿名函数是一种没有函数名的函数,即定义即使用;闭包作为一种携带状态的函数,我们可以简单地将它理解为“对象”,因为它同时具备状态和行为。 匿名函数 匿名函数没有函数名,只有函数体,它只有在被调用的时候才会初始化。匿名函数一般被当作一种类型赋值给函数类型的变量,经常被用作回调函数。 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
阅读全文
摘要:Viper中文教程 Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。 安装 go get github.com/spf13/viper 什么是Viper? Viper是适用于Go应用程序(包括Twelve-Factor App)的
阅读全文
摘要:概述 cobra 库是 golang 的一个开源第三方库,能够快速便捷的建立命令行应用程序。 优势:cobra 可以快速建立CLI程序,使我们更专注于命令需要处理的具体的业务逻辑。 举两个例子: hugo server --port=1313 git clone URL --bare 都是命令行程序
阅读全文
摘要:Cobra 是一个 Golang 包,它提供了简单的接口来创建命令行程序。同时,Cobra 也是一个应用程序,用来生成应用框架,从而开发以 Cobra 为基础的应用。 使用 cobra init 命令初始化程序框架,但是发现提示错误: Error: required flag(s) "pkg-nam
阅读全文
摘要:我们经常需要程序在数据集上执行操作,比如选择满足给定条件的所有项,或者将所有的项通过一个自定义函数映射到一个新的集合上。 在某些语言中,会习惯使用泛型。 Go 不支持泛型,在 Go 中,当你的程序或者数据类型需要 时,通常是通过组合的方式来提供操作函数。 这是一些 strings 切片的组合函数示例
阅读全文
摘要:切片(slice)是 Golang 中一种比较特殊的数据结构,这种数据结构更便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数 append() 来实现的,这个函数可以快速且高效地增长切片,也可以通过对切片再次切割,缩小一个切片的大小。因为切
阅读全文
摘要:Go语言fmt.Scan使用指南 本文介绍了Go语言中fmt包中从标准输入获取数据的的Scan系列函数、从io.Reader中获取数据的Fscan系列函数以及从字符串中获取数据的Sscan系列函数的用法。 Scan系列 Go语言fmt包下有fmt.Scan、fmt.Scanf、fmt.Scanln三
阅读全文
摘要:govendor介绍 govendor 是 GoLang 常用的一个第三方包管理工具,它的出现解决了不同用户在 clone 同一个项目时从外部获取不同依赖库版本的问题。 govendor会将项目需要的依赖包添加到项目的 vendor 目录下,并且该目录中 vendor.json 文件会保存添加的依赖
阅读全文
摘要:Go语言在代码规范中定义未使用的变量会报“declared and not used”错误 package main import "fmt" func main() { var a, b, c int64 a = 10 b = 15 c = a + b fmt.Printf("a = %d,b =
阅读全文
摘要:🐁下面代码中的指针p为野指针,因为返回的栈内存在函数结束时会被释放,这一说法是否正确。 答案:说法错误 golang不存在野指针,它有自己的垃圾回收和逃逸分析。go语言的自动内存管理机制使得只要还有一个指针引用一个变量,那这个变量就会在内存中得以保留,因此在Go语言函数内部返回指向本地变量的指针是
阅读全文
摘要:bcrypt加密算法原理和应用 对于同一个密码,每次生成的hash不一样,但是hash中包含了salt(hash产生过程:先随机生成salt,salt跟password进行hash); 在下次校验时,从hash中取出salt,salt跟password进行hash;得到的结果跟保存在DB中的hash
阅读全文
摘要:新建 Go 项目时,一定要通过 “File -> New -> Project...” 方式建立,千万不要通过 “File -> Open”,即“直接打开现有文件夹” 的方式建立,否则,调试(Debug)功能失效,只有运行(Run)功能。 【特别提醒】 如果是一步小心通过 File -> Open
阅读全文
摘要:开启模块支持后,并不能与GOPATH共存,所以把项目从GOPATH中移出即可
阅读全文

浙公网安备 33010602011771号