Skip to content

Commit 1811a6e

Browse files
committed
byte delta
1 parent 34ed55a commit 1811a6e

File tree

1 file changed

+41
-23
lines changed

1 file changed

+41
-23
lines changed

byte.go

+41-23
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,44 @@
11
package delta
22

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]
156

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

Comments
 (0)