Tags

  • 技术

Go 编程经验:

  1. String 长度, len(str) 取得字节码长度, 想获取 unicode 长度使用utf.RuneCountInString(str).或者截取子句子方法是str := []rune(content), str[:end], rune 表示 unicode 码点 示例
  2. 反斜杠写法是 字符串字面常量写法, 不会对斜杠之类进行转译. 示例
  3. 字节流([]byte) 和 字符串(string) 区别: 字符串(string):只读的、不可变的 UTF-8 字符序列。字节流([]byte):可变的字节数组,可以存储任意二进制数据。 示例
  4. defer 与闭包 确定值的原则: 作为参数传入的:定义defer的时候就确定了。作为闭包引入的:执行 defer 对应的方法的时候才确定。 示例
  5. Defer 只能修改带名字的返回值; 也能修改指针所指的内部变量. 示例
  6. 1.22+ 循环变量作用域产生变化: 迭代器每次迭代都会分配新的变量.所以如图现在闭包函数会打印2,1,0 不会都是2 示例
  7. 子切片和切片是否互相影响, 看是否共享数组: 子切片没有扩容前和切片共享底层数组.
  8. 在 Go 文件中,init 函数用于包的初始化,在程序运行时自动执行,无需手动调用。 示例
  9. 衍生类型初始化时可直接用底层数据类型初始化: 示例
  10. fallthrough 语法: 示例