切片循环
package main import ( "fmt" "strings" ) //传入2个切片判断元素是否相等 func bsEqual(arr, brr []byte) bool { if len(arr) == len(brr) { for i := 0; i < len(arr); i++ { a, b := arr[i], brr[i] fmt.Println(a, b) if a == b { fmt.Println("元素相同") } else { return false } } } return false } //传入切片不够8位用0补齐 func Padding(originSlice []byte) []byte { for { old_num := float64(len(originSlice)) // fmt.Println("入参数", old_num) value := old_num / float64(8) // fmt.Println("计算后参数", mew_num) f := fmt.Sprintf("%v", value) //str 1.125 // fmt.Println(f, "str转换后判断是否有.") if strings.Contains(f, ".") { // fmt.Println("需要补位") originSlice = append(originSlice, 0) continue } return originSlice } } //传入padding切片返回原有切片 func UnPadding(paddedSlice []byte) []byte { count := len(paddedSlice) - 1 for { if paddedSlice[count] == 0 { count -= 1 continue } else { return paddedSlice[:count+1] } } //反转切片 /* for i, j := 0, len(paddedSlice)-1; i < j; i, j = i+1, j-1 { paddedSlice[i], paddedSlice[j] = paddedSlice[j], paddedSlice[i] } // fmt.Println(paddedSlice) // return paddedSlice } */ func main() { //1 arr1 := []byte{1, 2, 3} brr := []byte{1, 2, 0} fmt.Println(bsEqual(arr1, brr)) //2 arr2 := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} fmt.Println(Padding(arr2)) fmt.Println(UnPadding(Padding(arr2))) }