golang-字符串

字符串比较相等

func main() {
    fmt.Println("ADN" == "ADN")
    fmt.Println("ADN" == "adn")
    fmt.Println(strings.Compare("ADN", "ADN"))
    fmt.Println(strings.Compare("ADN", "adn"))
    fmt.Println(strings.EqualFold("ADN", "ADN"))
    fmt.Println(strings.EqualFold("ADN", "adn"))
}

Compare比"=="快,两种方法都区分大小写

EqualFold比较UTF-8编码在小写的条件下是否相等,不区分大小写。

字符串拼接

  • fmt.Sprintf 和 strings.Join 速度相当
  • string + 比上述二者快一倍
  • bytes.Buffer又比上者快约400-500倍
  • 如果循环内每次都临时声明一个bytes.Buffer来使用,会比持续存在慢50%,但是仍然很快
func main() {
    var c bytes.Buffer
    a := "ADN" + " so cool"
    b := strings.Join([]string{"ADN", "so", "cool"}, "-")
    c.WriteString("ADN ")
    c.WriteString("so ")
    c.WriteString("cool")
    fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c.String())
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容