type folder struct { children []inode name string } func (f *folder) print(indentation string) { fmt.Println(indentation + f.name) for _, i := range f.children { i.print(indentation + indentation) } } func (f *folder) clone() inode { cloneFolder := &folder{name: f.name + "_...
Cloneable interface { Clone() Cloneable } ) // Concrete struct (prototype) type ( Product struct { name string category string } ) // Clone method creates a copy of the Product func (p *Product) Clone() Cloneable { return &Product{name: p.name, category: p.category} } func (p *Pro...
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。 知识分享系列目前包含Java、Golang、Linux、Docker等等。 开发环境 系统:windows10 语言:Golang golang版本:1.17 代码仓库:FastDevelopGo 内容 日常我们使用golang开发项目时经常需要使用...
func (log *Logger) Sugar() *SugaredLogger { core := log.clone() core.callerSkip += 2 return &SugaredLogger{core} } //go.uber.org/zap/sugar.go#L53 func (s *SugaredLogger) Desugar() *Logger { base := s.base.clone() base.callerSkip -= 2 return base } 顺便在这里提一下受zap启发...
由于golang没有对复杂结构体的clone方法,所以,就需要有copier这样的工具库。 它看起来很简单,但实际使用中,有些“坑”还是要注意! 本文: 入门为辅,探“坑”为主, 看完再划走,CS我没有。 安装 go get github.com/jinzhu/copier 快速入门 好的,来一段代码快速了解copier ...
但也不该因噎废食,首先泛型struct和泛型interface受到的影响很小,其次如我所说,如果不使用类型约束上的方法,那性能损耗几乎没有,所以像lo、mo这样的工具库还是能放心用的。 这个问题1.18就有人提出来了,然而gcshape的实现在这点上太拉胯,小修小补解决不了问题,官方也...
packagemainimport"log"typeStringPrototypeinterface{getStr()stringsetStr(strstring)clone()StringPrototype}typeMyStringstruct{strstring}func(p*MyString)getStr()string{returnp.str}func(p*MyString)setStr(strstring){p.str=str}func(p*MyString)clone()StringPrototype{return&MyString{str:p.str}}funcmain...
GIT 提交的需求:在 git clone 之前把 my-projects/project1/src/github.com 给创建出来,然后 git clone project1 到这个目录里。 区分自己和别人的代码:使用 vendor 目录 你以为这就完美了?如果你要提供一个build.sh在编译机上做打包怎么办?编译机上的GOPATH 怎么设置呢?最佳实践:在 build.sh 里自己创建一个...
方法二、先git clone 下来,然后执行go install(这种有点多此一举,直接用第一种好了)安装成功后,接下来介绍sql包中常见的struct和方法 type DB,DB是一个数据库操作句柄,可以安全地被多个go程使用,实现的主要方法:Close,Exec,Query,QueryRow,Prepare,Begin等 type Row ,查询结果,QueryRow方法返回Row...
BPF_F_CLONE = 0x200 2596 BPF_F_MMAPABLE = 0x400 2597 BPF_F_PRESERVE_ELEMS = 0x800 2598 BPF_F_INNER_MAP = 0x1000 2599 BPF_STATS_RUN_TIME = 0x0 2600 BPF_STACK_BUILD_ID_EMPTY = 0x0 2601 BPF_STACK_BUILD_ID_VALID = 0x1 2602 BPF_STACK_BUILD_ID_IP = 0x2 2603 BPF_F_RE...