|
1 | 1 | package delta
|
2 | 2 |
|
3 |
| -// ByteSliceDelta 字节数组 |
4 |
| -func ByteSliceDelta(bytes []byte) []byte { |
5 |
| - result := make([]byte, 0) |
6 |
| - for index, value := range bytes { |
7 |
| - if index == 0 { |
8 |
| - result[index] = value |
9 |
| - } else { |
10 |
| - result[index] = bytes[index-1] - value |
11 |
| - } |
12 |
| - } |
13 |
| - return result |
14 |
| -} |
| 3 | +// ToByteSliceDelta 不单独实现了,直接认为是int的一种特殊情况,为了调用方的代码可读性这里就给个别名 |
| 4 | +var ToByteSliceDelta = ToIntegerSliceDelta[byte] |
| 5 | +var FromByteSliceDelta = FromIntegerSliceDelta[byte] |
15 | 6 |
|
16 |
| -func ByteSliceFromDelta(bytes []byte) []byte { |
17 |
| - result := make([]byte, 0) |
18 |
| - for index, value := range bytes { |
19 |
| - if index == 0 { |
20 |
| - result[index] = value |
21 |
| - } else { |
22 |
| - result[index] = result[index-1] + value |
23 |
| - } |
24 |
| - } |
25 |
| - return result |
26 |
| -} |
| 7 | +//// ToByteSliceDelta 字节数组 |
| 8 | +//func ToByteSliceDelta(bytes []byte, compareToType CompareToType) []byte { |
| 9 | +// deltaSlice := make([]byte, 0) |
| 10 | +// for index, byteValue := range bytes { |
| 11 | +// if index == 0 { |
| 12 | +// deltaSlice[index] = byteValue |
| 13 | +// continue |
| 14 | +// } |
| 15 | +// switch compareToType { |
| 16 | +// case CompareToFirst: |
| 17 | +// deltaSlice[index] = byteValue - bytes[0] |
| 18 | +// case CompareToLast: |
| 19 | +// deltaSlice[index] = byteValue - bytes[index-1] |
| 20 | +// default: |
| 21 | +// panic(fmt.Errorf("not support compare type: %#v", compareToType)) |
| 22 | +// } |
| 23 | +// } |
| 24 | +// return deltaSlice |
| 25 | +//} |
| 26 | + |
| 27 | +//func FromByteSliceDelta(deltaSlice []byte, compareToType CompareToType) []byte { |
| 28 | +// bytes := make([]byte, 0) |
| 29 | +// for index, delta := range deltaSlice { |
| 30 | +// if index == 0 { |
| 31 | +// bytes[index] = delta |
| 32 | +// continue |
| 33 | +// } |
| 34 | +// switch compareToType { |
| 35 | +// case CompareToFirst: |
| 36 | +// bytes[index] = bytes[index-1] + delta |
| 37 | +// case CompareToLast: |
| 38 | +// bytes[index] = bytes[index-1] + delta |
| 39 | +// default: |
| 40 | +// panic(fmt.Errorf("not support compare type: %#v", compareToType)) |
| 41 | +// } |
| 42 | +// } |
| 43 | +// return bytes |
| 44 | +//} |
0 commit comments