golang: 学会几个语法上的新写法
看了VictoriaMetrics,学会了几个新写法,记录下来:
1. 数组拷贝
以前:
arr := make([]byte, 0, len(oldArr)
arr = append(arr, oldArr...)
现在:
arr := append([]byte{}, oldArr...)
2.interface{}类型断言
以前:
func converToMyType(interfaceType interface{}) *MyType{
    var inst *MyType
    var ok bool
    inst,ok = interfaceType.(*MyType)
    if !ok{
        inst = &MyType{}
    }
    return inst
}
现在:
func converToMyType(interfaceType interface{}) *MyType{
    if _,ok:=interfaceType.(*MyType);!ok{
        interfaceType = &MyType{}
    }
    return interfaceType.(*MyType)
}
3.数组初始化
var (
   int64Zeros [8 * 1024]int64
   int64Ones  = func() (a [8 * 1024]int64) {
      for i := 0; i < len(a); i++ {
         a[i] = 1
      }
      return a
   }()
)
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号