随笔分类 -  GO

上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 32 下一页
go学习
摘要:将字符串以下划线分割 下面的代码会将给定的字符串以下划线分割。 import ( "fmt" "strings" "regexp")func main() { snakeCase := ConvertToSnakeCase("ILikeProgrammingINGo123") fmt.Println 阅读全文
posted @ 2022-05-07 09:12 技术颜良 阅读(146) 评论(0) 推荐(0)
摘要:package mainimport ( "fmt" "log" "os" "strconv" "strings")func DemoTest() { var Name string var Version string { fmt.Printf("%s-%s",Name,Version) }}fu 阅读全文
posted @ 2022-05-05 12:07 技术颜良 阅读(35) 评论(0) 推荐(0)
摘要:https://github.com/bytedance/sonic 一、魔法:调用runtime中的私有函数 按照Go的编译约定,代码包内以小写字母开头的函数、变量是私有的: package test// 私有func abs() {}// 公共func Abs() {} 对于test包中abs函 阅读全文
posted @ 2022-05-05 11:30 技术颜良 阅读(362) 评论(0) 推荐(0)
摘要:写代码其实也有很多套路和经验,这篇介绍几个让golang代码更优雅的四个套路。 这篇想和大家聊一聊golang的常用代码写法。在golang中,如果大家不断在一线写代码,一定多多少少会有一些些代码的套路和经验。这些经验是代表你对一些问题,或者一类问题的思考和解决。处理一个问题的方法有很多,如果频繁遇 阅读全文
posted @ 2022-05-04 12:04 技术颜良 阅读(201) 评论(0) 推荐(0)
摘要:概要 在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP 429(Too Many Requests) 然后就会有一段时间的禁止访问. 为了应对这种限速的情况, 通过一个简单的请求队列来控制访问的速度, 之后基 阅读全文
posted @ 2022-04-29 07:33 技术颜良 阅读(661) 评论(0) 推荐(0)
摘要:迭代器变量上使用 goroutine 这算高频吧。 package mainimport ( "fmt" "sync")func main() { var wg sync.WaitGroup items := []int{1, 2, 3, 4, 5} for index, _ := range it 阅读全文
posted @ 2022-04-26 10:46 技术颜良 阅读(297) 评论(0) 推荐(0)
摘要:欢迎来到 Golang 系列教程的第 32 篇。 package mainimport ( "fmt")func TestDefer() { defer func() { if err:=recover();err!=nil{ fmt.Println(err) //log.Println(err) 阅读全文
posted @ 2022-04-23 17:25 技术颜良 阅读(142) 评论(0) 推荐(0)
摘要:package mainimport ( "encoding/json" "fmt" "log" "os")type YY struct { S string I float64}func main() { _=json.NewEncoder(os.Stdout).Encode(&YY{ S: "t 阅读全文
posted @ 2022-04-18 09:37 技术颜良 阅读(253) 评论(0) 推荐(0)
摘要:package mainimport "fmt"func main() { //var x,y,z = 1,2,3 var s []*int = []*int{new(int)} for i:=range s { fmt.Println(*s[i]) //s=nil会报错,空指针不可取值 = 0 } 阅读全文
posted @ 2022-04-16 17:11 技术颜良 阅读(71) 评论(0) 推荐(0)
摘要:https://golang.iswbm.com/c02/c02_06.html 1. 对方法的调用限制 接口是一组固定的方法集,由于静态类型的限制,接口变量有时仅能调用其中特定的一些方法。 请看下面这段代码 package main import "fmt" type Phone interfac 阅读全文
posted @ 2022-04-12 21:17 技术颜良 阅读(123) 评论(0) 推荐(0)
摘要:type SshFilterGroupQ struct { PaginationQ SshFilterGroup}//Allfunc (m SshFilterGroupQ) Search() (pagination PaginationQ, err error) { pagination = m.P 阅读全文
posted @ 2022-04-11 12:17 技术颜良 阅读(99) 评论(0) 推荐(0)
摘要:(一)form-data: 对应于http请求中的multipart/form-data。 它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。 既可以上传键值对,也可以上传文件。 Content-disposition,用来说明字段的一些信息。 当上传的 key 是文件时: Content 阅读全文
posted @ 2022-04-10 14:17 技术颜良 阅读(926) 评论(0) 推荐(0)
摘要:https://github.com/cookieY/Yearning/blob/ad6c04b2904bb4cdcb64f732ce088d072751074e/src/lib/toolbox.go#L237 package soar import ( "errors" "fmt" "github 阅读全文
posted @ 2022-04-08 15:48 技术颜良 阅读(183) 评论(0) 推荐(0)
摘要:package mainimport ( "fmt" "strconv")func Demo() (s *[]string){ s = new([]string) // s = &[]string{} return s}func main() { var s interface{}= "test" 阅读全文
posted @ 2022-04-07 17:52 技术颜良 阅读(523) 评论(0) 推荐(0)
摘要:多字段更新? 并发编程中,原子更新多个字段是常见的需求。 举个例子,有一个 struct Person 的结构体,里面有两个字段。我们先更新 Person.name,再更新 Person.age ,这是两个步骤,但我们必须保证原子性。 有童鞋可能奇怪了,为什么要保证原子性? 我们以一个示例程序开端, 阅读全文
posted @ 2022-04-07 09:55 技术颜良 阅读(1493) 评论(0) 推荐(1)
摘要:这是Go单元测试从入门到放弃系列教程的第1篇,介绍了如何使用httptest和gock工具进行网络测试。 在上一篇《Go单元测试从入门到放弃—0.单元测试基础》中,我们介绍了Go语言编写单元测试的基础内容。 而实际工作中的业务场景往往会比较复杂,无论我们的代码是作为server端对外提供服务或者还是 阅读全文
posted @ 2022-04-07 09:53 技术颜良 阅读(520) 评论(0) 推荐(0)
摘要:import ( "database/sql/driver" "encoding/json" "github.com/sirupsen/logrus" "sshfortress/util")type HardwareInfo struct { Disk string `json:"hi_disk"` 阅读全文
posted @ 2022-04-07 09:31 技术颜良 阅读(150) 评论(0) 推荐(0)
摘要:实践是检验真理的唯一标准,所以当我们遇到一个不确定的问题,直接写demo来验证,因为切片的特点,我们可以分多种情况来验证: 不指定索引,动态扩容并发向切片添加数据 func concurrentAppendSliceNotForceIndex() { sl := make([]int, 0) wg  阅读全文
posted @ 2022-04-06 08:39 技术颜良 阅读(158) 评论(0) 推荐(0)
摘要:nil 切片、空切片与零切片是切片的三种状态,nil 切片是指在声明时未做初始化的切片,不用分配内存空间,一般使用 var 创建。使用 make 创建的空切片需要分配内存空间,nil 切片与空切片的长度、容量都为 0 ,如果我们要创建长度容量为 0 的切片,官方推荐 nil 切片。零切片指初始值为类 阅读全文
posted @ 2022-04-05 20:30 技术颜良 阅读(2170) 评论(0) 推荐(0)
摘要:要研究 Go 的定时器,那么肯定要从 time.Ticker 这个结构体入手。 先看一个官网的例子: func main() { ticker := time.NewTicker(time.Second) defer ticker.Stop() done := make(chan bool) go 阅读全文
posted @ 2022-04-04 10:31 技术颜良 阅读(45) 评论(0) 推荐(0)

上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 32 下一页