跳过正文
  1. Teches/
  2. 程序语言/
  3. golang/

小知识

·26 字·1 分钟
  1. string和[]byte
    string是不可变类型,不能通过下标修改值,适合表示不可变的文本数据,安全、简洁,适合 map 键和比较操作。
    []byte可变类型,可以通过下标修改值,也可以动态扩容,适合处理可变的字节流,性能更高,适合 I/O 和缓冲区操作。

  2. 具名函数定义必须位于包级别中,不能在函数体内嵌套定义具名函数

  3. 类型断言value, ok := x.(T)/ value := x.(T)
    询问接口值 x 中存储的动态类型是否是 T

  4. 导入的包必须在代码中被使用,除非使用空白标识符作为别名,仅为了执行包的初始化过程,而不直接使用包中的任何导出函数、类型或变量。,如import _ "net/http/pprof"

  5. 切片扩容

    • 特殊直接分配:如果所需容量大于旧容量的两倍,新容量直接等于所需容量。
    • 小容量翻倍:如果旧容量小于256,新容量一般直接翻倍(乘以2)。
    • 大容量平滑过渡:如果旧容量大于等于256,则会进入一个循环,通过特定公式计算新容量。这个公式会让扩容倍数从2开始,随着容量增大,平滑地趋近于1.25倍,而不是一个固定的倍数。