type SliceHeader struct { Data uintptr Len int Cap int } SliceHeader是切片的运行时表示。它不能被安全或便携地使用,其表示可能会在以后的版本中更改。此外,数据字段不足以保证它引用的数据不会被垃圾收集,因此程序必须保留一个单独的,正确键入的指向底层数据的指针。
type StringHeader struct { Data uintptr Len int } StringHeader是字符串的运行时表示形式。
// IntToBool int 类型转换为 bool funcIntToBool(i int)bool { return i != 0 }
// SliceInt64ToString []int64 转换为 []string funcSliceInt64ToString(si []int64)(ss []string) { ss = make([]string, 0, len(si)) for k := range si { ss = append(ss, strconv.FormatInt(si[k], 10)) } return ss }
// SliceStringToInt64 []string 转换为 []int64 funcSliceStringToInt64(ss []string)(si []int64) { si = make([]int64, 0, len(ss)) var ( i int64 err error ) for k := range ss { i, err = strconv.ParseInt(ss[k], 10, 64) if err != nil { continue } si = append(si, i) } return }
// SliceStringToInt []string 转换为 []int funcSliceStringToInt(ss []string)(si []int) { si = make([]int, 0, len(ss)) var ( i int err error ) for k := range ss { i, err = strconv.Atoi(ss[k]) if err != nil { continue } si = append(si, i) } return }