随笔分类 - Golang
摘要:了解 PHP 的朋友应该会被 PHP 中两大特性折服:1、强大的 array;2、强大的函数库。大部分数据用一个 array 即可表示;同样大部分功能用一个函数即可搞定。 PHP 中的函数是如此强大、便利,所以 PHPer 转到 Go 语言来,发现很多都需要自己封装,着实不方便。也正因为如此,Git
阅读全文
摘要:前序 正确地认识 G , M , P 三者的关系,能够对协程的调度机制有更深入的理解! 本文将会完整介绍完 go 协程的调度机制,包含: 调度对象的主要组成 各对象的关系 与 分工 gorutine 协程是如何被执行的 内核线程 sysmon 对 gorutine 的管理 gorutine 协程中断
阅读全文
摘要:func Random2(strings []string) string { //字符串数组 for i := len(strings) - 1; i > 0; i-- { num := rand.Intn(i + 1) strings[i], strings[num] = strings[num
阅读全文
摘要://获取用户获取的优惠券列表 func GetCouponList(c *gin.Context) { defer func() { if r := recover(); r != nil { util.LogStack(r.(error)) c.JSON(RequestSuccess, gin.H
阅读全文
摘要:在设置cookie过期时间的时候,用当日剩余秒数与内置变量相乘报错invalid operation: second * time.Second (mismatched types int and time.Duration) Expires : time.Now().Add(10 * time.S
阅读全文
摘要:demo 1 func getTodaySurplusSecond1() (int64,error) { layout := "2006-01-02" loc, _ := time.LoadLocation("Asia/Shanghai") t, err := time.ParseInLocatio
阅读全文
摘要:func difference(slice1, slice2 []int) []int { //取要校验的和已经校验过的差集,找出需要校验的切片IP(找出slice1中 slice2中没有的) m := make(map[int]int) n := make([]int,0) inter := in
阅读全文
摘要:在util目录下新建一个ip文件 package util import ( "fmt" "math/big" "net" ) func GetLocalIP() string { addrs, err := net.InterfaceAddrs() if err != nil { return "
阅读全文
摘要:在uitl目录下新建guid.go文件 package util import ( "crypto/md5" "crypto/rand" "encoding/binary" "encoding/hex" "fmt" "io" "os" "sync/atomic" "time" ) var objec
阅读全文
摘要:go语言和php不一样,需要预编译加载到内存,而每次改动代码都需要重新编译。先不说线上怎么能保证服务正常的运行(强制结束进程会让正在访问的客户出现不必要的问题,体验贼差),就咱们在开发过程中,每次的修改代码ctrl+c的繁琐也很dan疼。偶NO~ 想要解决以上问题,大概要实现以下几个目的 不关闭现有
阅读全文
golang代理超时报错"https://proxy.golang.org/github.com/********** timeout make: *** [build_yaml] Error 1解决
摘要:golang代理超时报错"https://proxy.golang.org/github.com/********** timeout make: *** [build_yaml] Error 1解决 解决方法只需要换一个国内能访问的代理即可,终端执行以下命令 go env -w GOPROXY=h
阅读全文
摘要:package main import "fmt" /* ①封装人,属性包括姓名、年龄、身高、体重、颜值、资产、性别、性取向 ②给人封装结婚方法,参数是潜在的结婚对象: a、如果对方的性取向有问题,panic b、如果对方的颜值过低,返回错误 c、否则返回满意程度 */ type Gender in
阅读全文
摘要://配置文件package models const ( RECODE_OK = "0" RECODE_DBERR = "4001" RECODE_NODATA = "4002" RECODE_DATAEXIST = "4003" RECODE_DATAERR = "4004" RECODE_SES
阅读全文
摘要:package main import ( "fmt" "math" ) func main() { i := 1 fmt.Println(math.Abs(float64(i))) //取到绝对值 fmt.Println(math.Ceil(3.8)) //向上取整 fmt.Println(mat
阅读全文
摘要:简单代码 服务端 //Server.go package main import ( "fmt" "net" "os" ) func main(){ //服务端在本机8888端口建立tcp监听 listener,err :=net.Listen("tcp","127.0.0.1:8888") Ser
阅读全文
摘要:为啥string和[]byte类型转换需要一定的代价?为啥内置函数copy会有一种特殊情况copy(dst []byte, src string) int?string和[]byte,底层都是数组,但为什么[]byte比string灵活,拼接性能也更高(动态字符串拼接性能对比)? 何为string?
阅读全文
摘要:func trimHtml(src string) string { //将HTML标签全转换成小写 re, _ := regexp.Compile("\\<[\\S\\s]+?\\>") src = re.ReplaceAllStringFunc(src, strings.ToLower) //去
阅读全文
摘要:假如我们在需求中需要类似如下图格式的日期展示,那么我们可以利用golang自带的time包来格式化(format包) 包的路径:goroot/src/time/format.go,以下是包的所包括格式内容 const ( ANSIC = "Mon Jan _2 15:04:05 2006" Unix
阅读全文
摘要:#string到int int,err := strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt(string, 10, 64) //第二个参数为基数(2~36), //第三个参数位大小表示期望转换的结果类型,其值可以为
阅读全文
摘要:go的默认安装路径是 /usr/local/go 编辑 vim ~/.bash_profile 配置参数 export GOROOT=/usr/local/go export GOPATH=/Users/wangteng/go export GOBIN=$GOROOT/bin export PATH
阅读全文