加深学习golang的工具和一些编程技巧
详情见项目 CIDI目录
var _ Person = (*Student)(nil)
var _ Person = (*Worker)(nil)
-
如果是常量字符串拼接,直接使用 "+" 运算符
运算符是每次拼接都要申请内存,但是常量字符串的连续拼接则不算在内,由编辑器帮我们处理,如下:package main func main() { addStr() } func addStr() string { var s string s += "123" + "456" + "789" s += "aaaa" s += "bbbb" return s }
-
如果是动态字符串数组拼接,且使用统一拼接方法,使用strings.Join(src,split)拼接
-
如果是字符串数组拼接,且拼接较为灵活,则使用strings.builder类型,builder.writerstring("xxxx") 拼接(推荐使用此方法,性能体现最好)
对于builder的拼接,在拼接之前为builder申请好内存,防止频繁的扩容。拼接是append: func (b *Builder) WriteString(s string) (int, error) { b.copyCheck() b.buf = append(b.buf, s...) return len(s), nil } 防止频繁扩容: var b strings.Builder b.Grow(cap) b.WriteString(xxxx)