如何删除[]字节类型的字节

时间:2017-06-07 09:42:41

标签: arrays go byte

我有一个变量cmd,返回[50 48 ... 50 53 10]

可以删除此var的任何字节吗?在我的情况下,我想删除最后一个字节[10] == LF(换行)以获取:[50 48 ... 50 53]

P.S。:我没有发现任何类似的问题,因为函数bytes.Trim(cmd, "\x10")对我不起作用,或者,我可能不会使用它......

2 个答案:

答案 0 :(得分:3)

没有这样的内置方法可以做到这一点,但你仍然可以这样做:

cmd := []int{1, 2, 3, 3, 5, 6, 7, 8}
expected := cmd[:len(cmd)-1])

答案 1 :(得分:3)

例如,

package main

import (
    "bytes"
    "fmt"
)

func main() {
    b := []byte{50, 48, 50, 53, 10}
    fmt.Println(b)
    b = bytes.TrimSuffix(b, []byte{10}) // Line Feed
    fmt.Println(b)

    b = []byte{50, 48, 50, 53, 10}
    fmt.Println(b)
    b = bytes.TrimSuffix(b, []byte("\n")) // Line Feed
    fmt.Println(b)
}

输出:

[50 48 50 53 10]
[50 48 50 53]
[50 48 50 53 10]
[50 48 50 53]