golang
something about golang
sky527759
这个作者很懒,什么都没留下…
展开
-
私有git仓库只支持http情况下go mod tidy 和 go get 默认走https的问题处理
私有git仓库只支持http情况下go mod tidy 和 go get 默认走https的问题处理1. 假定git仓库的ip是10.1.1.1, 仓库名称是git-repo-name, 仓库的go module名称是 10.1.1.1/your-user-name/git-repo-name, 该仓库目录下有go-utils文件夹, go-utils文件夹下是utils包, utils包有函数"IntToString(i int) string"2. git 全局配置, 强制git https走ht原创 2022-05-17 11:39:35 · 2820 阅读 · 0 评论 -
golang 多模块如何使用的相关链接
Proposal: Multi-Module Workspaces in cmd/gohttps://github.com/golang/tools/blob/master/gopls/doc/workspace.md#multiple-moduleshttps://github.com/golang/tools/blob/master/gopls/doc/settings.md#experimentaluseinvalidmetadata-boolhttps://github.com/golang/原创 2022-05-14 19:41:56 · 177 阅读 · 0 评论 -
Gopls reports compiler error on vscode when having os/arch specific files
在修改kubeedge代码时gopls报错:cannot use &(internalContainerLifecycleImpl literal) (value of type *internalContainerLifecycleImpl) as InternalContainerLifecycle value in return statement: internalContainerLifecycleImpl does not implement InternalContainerLife原创 2022-03-29 09:35:35 · 719 阅读 · 0 评论 -
golang xxx.go代码模板
package aaaexample// import顺序// import (// // golang标准库// "xxx"//// // 该项目的包// "xxx"//// // 公司内部包// "xxx"//// // 外部第三方包,如github上的开源包// "xxx"// )// 导出和未导出分开写,包级别的常量和变量在const 和 var中,单个可以直接使用const ( Zero i原创 2022-02-14 10:55:46 · 1408 阅读 · 0 评论 -
golang 编译时设置变量值
golang在编译时用ldflags设置变量的值go build ldflags原创 2022-02-09 15:27:30 · 508 阅读 · 0 评论 -
what is difference in “type A = B“ and “type A B“(A and B both are struct name)
type MinerWallet struct{}func (mw *MinerWallet) Update() {}type MwAlias = MinerWalletfunc (mw *MwAlias) Alias() {}type MwOther MinerWalletfunc (mw *MwOther) Other() {}func init() { var mw, mwAlias, mwOther = new(MinerWallet), new(MwAlias), new原创 2022-01-12 09:52:13 · 179 阅读 · 0 评论 -
golang pprof and heap and stack
golang-栈内存空间golang pprof 使用简介go pprof详细理解及使用原创 2021-11-02 13:53:13 · 273 阅读 · 0 评论 -
从fasthttp接口返回的响应体数据在并发情况下被overlap的问题排查
项目上遇到一个问题,在json解码接口A返回的数据时,发现竟然解码的是接口B返回的数据,因为项目使用的是fasthttp,怀疑是并发情况下数据被overlap,一查还真是。fasthttp-repo响应体数据在并发情况下被overlap的相关issue相关代码:http.go的func (resp *Response) Body() []byte函数,在323行左右// Body returns response body.//// The returned value is valid un原创 2021-11-02 12:03:54 · 824 阅读 · 0 评论 -
golang staticcheck
staticcheck.io下面是摘抄出来的几个:SA6001 – Missing an optimization opportunity when indexing maps by byte slicesMap keys must be comparable, which precludes the use of byte slices. This usually leads to using string keys and converting byte slices to strings.No原创 2021-10-04 11:04:28 · 4314 阅读 · 0 评论 -
golang 交叉编译
Mac 下编译 Linux 和 Windows 64位可执行程序export CGO_ENABLED=0 GOOS=linux GOARCH=amd64 && go build -o ./xxxexport CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o ./xxx.exeLinux 下编译 Mac 和 Windows 64位可执行程序export CGO_ENABLED=0 GOOS=darwin GOARCH=amd64原创 2021-04-14 10:20:37 · 132 阅读 · 0 评论 -
记一次排查http请求返回ErrUnexpectedEOF错误的过程
co-worker那边有个需求,需要将http返回的数据先经过压缩,再返回出去,引用了团队内部的http封装包,结果http客户端在读取返回的数据时一直报ErrUnexpectedEOF错误,后面经过排查,发现http服务端再返回数据时,填写的“Content-Length”字段值是压缩前的数据的长度,返回的数据却是压缩后的,导致http在读取数据时,还没读到指定的“Content-Length”长度的数据就出现“EOF”,就报了这个ErrUnexpectedEOF错误。总的来说,这个错误是因为实际返回的原创 2021-03-18 23:47:01 · 1490 阅读 · 0 评论 -
QA in go mod
go.mod原创 2021-03-17 08:19:08 · 77 阅读 · 0 评论 -
golang不能被recover的panic
数据竞争(比如:对map进行并发读写),可以通过golang的编译标记race对代码进行检测是否存在数据竞争(比如:并发读写map)内存不足死锁原创 2021-01-29 16:33:38 · 1520 阅读 · 0 评论 -
构成golang代码的元素列举
包名const常量(导出和未导出)var变量(导出和未导出)结构体定义(导出和未导出)函数类型声明(导出和未导出)无接收器方法(导出和未导出)结构体接收器方法(导出和未导出)指针接收器方法(导出和未导出)非空interface定义(导出和未导出)10.包的初始化init函数...原创 2021-01-18 14:49:08 · 80 阅读 · 0 评论 -
使用golang-unsafe包的注意事项
基于golang 15.5以下是unsafe.go的原内容// Copyright 2009 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file./* Package unsafe contains operations that step around the type原创 2020-12-18 08:20:47 · 1185 阅读 · 0 评论 -
string to bytes, bytes to string
import "unsafe"func Str2Bytes(s string) []byte { x := (*[2]uintptr)(unsafe.Pointer(&s)) h := [3]uintptr{x[0], x[1], x[1]} return *(*[]byte)(unsafe.Pointer(&h))}func Bytes2Str(b []byte) string { return *(*string)(unsafe.Pointer(&b))}原创 2020-12-12 23:18:06 · 973 阅读 · 0 评论 -
QA in golang-gc
对golang-gc较为全面的讲解-写于2017-04-28golang-gc实践中的一些问题-写于2018-10-28在golang-gc的情况下做性能调优1. golang对gc对部分代码定义在golang源码中的proc.go文件中,变量forcegcperiod(line 4610)定义为2min,即2min内如果没有触发过gc,强制触发一次, 函数sysmon()触发golang的2min的gc清理, main()定义了主线程入口并重定向至程序main包的mian函数, init() 定义原创 2020-12-07 15:28:39 · 133 阅读 · 0 评论 -
golang 时间字符串格式
time.Unix(sec, nsec).Format(“2006-01-02 15:04:05”)time.Unix(sec, nsec).Format(“2006-01-02 15:04:05.000”)原创 2020-11-28 10:21:11 · 973 阅读 · 0 评论 -
golang 使用 iota from cnblogser ghj1976
iota是golang语言的常量计数器,只能在常量的表达式中使用。iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。使用iota能简化定义,在定义枚举时很有用。举例如下:1、iota只能在常量的表达式中使用。fmt.Println(iota)编译错误: undefined: iota2、每次 const 出现时,都会让 iota 初始化为0.const a = iota转载 2020-11-26 12:39:23 · 102 阅读 · 0 评论 -
QA in golang package
golang程序从main包开始运行,main()函数是入口,非可执行程序mian包不是必须的,可执行程序是必须的原创 2020-11-20 11:47:39 · 79 阅读 · 0 评论 -
Golang import 三种特殊形式:下划线、点、别名-from-csdner-9命怪猫
如同其它语言,Golang里面的import作用是引用其它package。除了直接import,常见的import有三种特殊形式(或者叫前缀),分别是前面加下划线(_),加点(.),加别名。一、加下划线:import 下划线(如:_ “github.com/go-sql-driver/mysql”)的作用:当导入一个包时,该包下的文件里所有init()函数 都会被执行。然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import _ 引用该包转载 2020-11-10 12:41:27 · 887 阅读 · 0 评论 -
golang permissions of file
owner group other0 - rwx - rwx - rwxfor more, seeing:golang ioutil.WriteFile函数perm参数的用法原创 2020-10-28 16:15:27 · 90 阅读 · 0 评论 -
golang-进制数前缀
十进制:0-9 ,满10进1。八进制:0-7 ,满8进1. 以数字0开头表示。十六进制:0-9及A-F,满16进1. 以0x或0X开头表示for more seeing:Go 1.13 数字表示、移位及分割原创 2020-10-28 15:53:20 · 415 阅读 · 0 评论 -
golang-json, 源码解释struct转json时,struct的属性字段需要大写才能转译成功
源码地址json.Marshal()会调用typeFields函数加载struct的field,typeFields函数会去判断该字段是否不能导出,如果不能导出且不是结构体类型,就会跳过该字段,后面在执行json编码的时候,自然看不到该字段了...原创 2020-10-28 13:11:22 · 384 阅读 · 0 评论 -
golang包引用顺序
包顺序:标准库 -> 项目内包 -> 内部第三方 -> 外部第三方包原创 2020-10-26 18:52:35 · 829 阅读 · 0 评论 -
golang-data-structure
uint, int, uintptr --bit count decided by cpu and compilerArray types is always transfered by value, not reference, copy the all elements of arraySlice types will be transfered by reference, no...原创 2020-01-15 23:16:47 · 522 阅读 · 0 评论 -
golang-interface
one type implements all methods of one interface => the type implement the interfaceevery type has already implemented “interface{}”every type can be “wrapped in box” and “unpack the box” by usi...原创 2019-12-28 10:11:11 · 189 阅读 · 0 评论 -
golang-range
2019.10.28, 9:00, edited by cxyanTest := [7]int{0, 1, 2, 3, 4, 5, 6}for key, value := range anTest[1:] {fmt.Printf(“key:%d, value:%d\n”, key, value)}output:key:0, value:1key:1, value:2key:2, v...原创 2019-10-28 09:01:14 · 93 阅读 · 0 评论 -
golang的命名规范及大小写的访问权限
1、golang的命名推荐使用驼峰命名法,必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。2、golang中根据首字母的大小写来确定可以访问的权限。无论是方法名、常量、变量名还是结构体的名称,如果首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用可以简单的理解成,首字母大写是公有的,首字母小写是私有的3、结构体中属性名的大写如果属...转载 2019-10-11 13:12:57 · 1151 阅读 · 2 评论 -
Website for studying go-language
1.The-Golang-Standard-Library:https://books.studygolang.com/The-Golang-Standard-Library-by-Example/2.原创 2019-09-28 17:24:47 · 93 阅读 · 0 评论 -
build the go language environment in windows
#Environment variableGOROOT: This is the go’s installation directory in your windows systemGOPATH: The directory which you workAdd in Path: {%GOROOT%\bin; //The go’s working directory%GOPATH%\bi...原创 2019-09-28 11:07:48 · 87 阅读 · 0 评论