
GO
文章平均质量分 65
AXIMI
这个作者很懒,什么都没留下…
展开
-
GO: command-line flag
backgroundcommand-line flag is used in command-line programs. For example, in wc -l the -l is a command-line flag. Go provides a flag package supporting basic command-line flag parsing.Basic flag declarations are available for string, integer, and boolea原创 2022-04-21 11:47:07 · 352 阅读 · 0 评论 -
GO: Design Pattern
文章目录BackgroundAbstract FactoryexampleBackgroundIn general, a pattern has four essential elements:pattern name, problem, solution, consequenceAbstract FactoryUsed when different objects have same behaviours. Also know as kitbenefitsexample原创 2022-04-06 16:09:51 · 610 阅读 · 0 评论 -
sqlx: batch insert operation
func BatchAdd(ctx context.Context, listData []*DataTab) (int64, error) { operation := "batch_add_shipment_group_audit_log" sqlStatement := fmt.Sprintf("INSERT INTO %s (%s) VALUES ", TableName, ColumnNames) var values []interface{} for _, row := range原创 2021-12-06 18:25:44 · 814 阅读 · 0 评论 -
Go: Map使用
文章目录创建创建package mainimport "fmt"type Vertex struct { Lat, Long float64}var m = map[string]Vertex{ "Bell Labs": {40.68433, -74.39967}, "Google": {37.42202, -122.08408},}func main() { fmt.Println(m)}原创 2021-11-11 23:40:46 · 202 阅读 · 0 评论 -
GO: Context使用
概念Context是一个Goroutine的上下文,用于保存一些执行状态。一般在goroutine执行之前将程序的运行状态封装在一个Context变量中,传递给要执行的协程。在网络编程场景下,有时候一个request需要经手多个goroutine,这个request的信息就可以通过context传递到不同的goroutine。context的核心是Context接口:type Context interface { Deadline() (deadline time.Time, ok bool原创 2021-09-25 21:43:40 · 1705 阅读 · 0 评论 -
GO: 字符类型(byte类型,rune类型)和字符串
概念go里面没有字符类型(char),而是使用byte和rune来代表字符。我们声明一个字符时,默认是rune类型,除非特别定义。var a = 'A' // rune typevar b byte = 'a' // byte typec:= byte('b') // byte type本质上,byte其实都是整型类型,其中byte是uint8的别称,rune是int32的别称。例如一个byte类型的字符'a'其实是整型数字97,对应ASCII码的字符a。var a = 'a'var原创 2021-09-19 16:11:48 · 3378 阅读 · 0 评论 -
GO: 输出(Print、Println 、Printf、Fprintf 、Sprintf的区别)
fmt.Print() // 打印输出fmt.Println() // 打印输出并换行fmt.FPrintf("打印这个字符串:%s ","string") // 格式化字符串并输出str := fmt.SPrintf("打印这个字符串:%s ","string") // 格式化字符串并返回,不会输出,可用于赋值...原创 2021-09-16 23:09:49 · 2538 阅读 · 0 评论 -
GO:channel
文章目录概念使用demo向channel发送一个数据并接收向channel连续发送数据并接收创建channel说明接收channel说明概念channel是goroutine之间的通信机制。每个channel都有一个数据类型,指定发送该类型的数据;同时同一时刻只有一个goroutine可以访问channel进行数据发送或访问;channel遵循FIFO原则。channel的数据传输有以下特点:channel的发送方和接收方是不同的goroutine(因为数据的发送和接收行为都会阻塞);chann原创 2021-09-15 23:58:08 · 262 阅读 · 0 评论 -
go: struct使用
字段设置struct中的*bool有时候会看到struct中的bool字段不是bool而是*bool即指针,这是因为初始化一个struct时,这个struct中的所有属性都是零值,bool字段会包含值False。但如果创建struct的时候,不想明确将默认值设置为True或False就可以将该字段的类型设置为*bool ,这样该字段的默认值就是nil。在这种场景下出于同样的原因,您不能直接将True或false分配给该属性,首先需要创建一个具有bool值的变量,并将该变量地址设置为该属性...原创 2021-09-08 09:34:54 · 639 阅读 · 0 评论 -
git操作手册
基本操作:git add <文件名>git commit -m '评论的内容'git push origin master提交到远程仓库添加文件:git add .提交被修改的和新建的文件,但不包括被删除的文件git add .–update update tracked files 更新所有改变的文件,即提交所有变化的文件git add -A......原创 2019-08-11 21:06:17 · 789 阅读 · 0 评论 -
Go string包使用
strings.HasPrefix(str, "is") // 是否有前缀isstrings.ContainsAny("team", "e") // 是否包含子字符串,可以匹配unicode字符strings.Contains("team", "e") // 是否包含子字符串,不能匹配unicode字符strings.Index("Good Job", "Job") // 返回子字符串索引值,没有返回-1strings.LastIndex(str, "Yep") // 返回子字符串最后原创 2021-08-01 12:24:53 · 245 阅读 · 0 评论 -
GO:切片Slice的概念,使用及线程安全性
文章目录二维切片二维切片创建func main() { // 创建 res := make([][]int, row) for i := range res { res[i] = make([]int, column) } fmt.Println(res) // 遍历 for i, row := range res { for j, value := range res[i] { fmt.Print(res[i]][j]) } }}...原创 2021-07-29 17:46:17 · 3339 阅读 · 1 评论 -
go mod使用
使用进入到go project文件目录使用go mod init创建go微环境可以直接使用go run main.go,此时go mod会自动下载依赖注意点不能在$GOPATH下使用go mod复制其他项目的源代码时不要复制go.mod文件,要复制的话也要修改一下go.mod文件里面的package名称...原创 2021-07-29 12:08:53 · 477 阅读 · 0 评论 -
解决【goland安装了插件,但是用不了】的问题
问题背景我在goland里面安装了插件go linter,但就是用不了解决方式需要给这个插件可执行的权限才能使用。进入到这个目录,并给可执行的权限:再进到插件的目录页就可以使用了:原创 2020-09-27 21:33:58 · 2444 阅读 · 0 评论 -
Go: 解决import | go get 之后,导入的包还是显示unresolved
问题背景我在goland下创建了一个项目,但是导入包的时候命名用go get导入成功了,import的部分还是显示红色(没有导入成功):没导入成功的时候这里会标红,我这里因为导入成功了所以是绿色的。有时候其实已经导入成功了,也可以正常运行,但是引入的包就是会标红色。解决方式其实会标红色是因为在你的项目里面没有external libraries,所以go get或者go build引入的包没有办法在你当前的项目里面找到。解决方式如下:选择设置:然后勾选上这个选项就可以了:...原创 2020-09-04 18:33:39 · 6465 阅读 · 0 评论 -
goland: 同步代码到远程服务器
需求背景我本地goland有很多代码,需要同步到服务器。实现方式goland有同步代码的插件。安装sftp和同步代码的插件进入goland–preference–plugins:搜索sftp,安装这两个插件:映射本地路径到服务器路径选择菜单栏tools–deployment–configuration:在connection和mappings这两栏内填入服务器地址等信息:其中Local path为本地代码的路径,Root path+Deployment path是服务器的代码路原创 2020-08-24 15:55:41 · 5746 阅读 · 0 评论 -
GO: 字符串
文章目录分割/截取/拼接字符串替换字符串大小写转化判断前后缀分割/截取/拼接字符串 strs := strings.Split("this is a string", " ")str1 := "this is a string"strs := str1[0:5]strs = strings.Join(strs,"_")替换字符串str := strings.Replace("this is a string", " ", "_", -1)-1表示所有的空格都替换为下划线,如果是正数(原创 2020-08-23 14:55:33 · 232 阅读 · 0 评论 -
GO: 定义一个函数类型
文章目录函数类型函数类型函数类型指将函数定义为一种类型,一般用于实现类似"通用接口"的功能。例如下面代码中,实现了将数组中的奇偶元素分到不同切片的功能。将识别切片元素奇偶性的函数定义为函数类型processFunc,再通过一个函数filter使用isOdd和isEven函数即可。这里的filter就可以看做一个通用的接口函数。package mainimport "fmt"func main(){ slice := []int{1,2,3,4,5,6,7} odd := filter原创 2020-08-23 11:17:58 · 1489 阅读 · 0 评论 -
GO: defer的使用场景、特性及使用
对有名返回值和无名返回值的影响package mainimport "fmt"func main() { fmt.Println("f1 result: ", f1()) fmt.Println("f2 result: ", f2())}func f1() int { var i int defer func() { i++ fmt.Println("f11: ", i) }() defer func() { i++ fmt.Println("f12: ",原创 2020-08-20 17:47:42 · 592 阅读 · 0 评论 -
GO高阶函数:匿名函数、回调函数和闭包
概念闭包就是生成函数的函数。使用方式使用方式是先实现闭包对象(闭包生成对象是函数),再通过这个函数做其他的功能。例如我现在有100个用户,每个用户都需要生成对应的xlsx文件、json文件、txt文件用于保存相关的信息,可以先创建闭包来实现三个函数,这三个函数可以生成.xlsx, .json, .txt的文件后缀,然后再通过这三个函数创建这100个用户的对应文件。func MakeFile(suffix string) func(string) string { return func(c原创 2020-08-20 16:38:33 · 608 阅读 · 0 评论 -
GO: 获得post application/json格式的body数据
传给后端的格式类型传给后端的格式类型为application/json格式:前端content-type对应类型为application/json:后端获得body数据的方式go需要创建一个struct结构来获得对应的数据,例如我前端传给后端的数据格式为:{ "projects": ["project1", "project2"], "start_date": "2020-08-01", "end_date": "2020-08-02",}则后端获得该数据的方式为:packag原创 2020-08-18 15:54:07 · 5042 阅读 · 0 评论