https://github.com/tarm/serial/blob/master/serial.go#L103

type StopBits byte
type Parity byte

type Config struct {
    Name        string
    Baud        int
    ReadTimeout time.Duration
    Size byte
    Parity Parity
    StopBits StopBits
}

我正在尝试标记命令行并填写配置结构,但我不知道如何从 int 或 string 转换为单个字节?

示例尺寸 7

试过
mysize := "7"
mysize[0]

但是然后 tarm/serial 告诉我 serial.Config 中的无效输入错误
i, err := strconv.Atoi("7")

编译器提示我不能做 i.(byte)
我可以让它工作的唯一方法是在配置结构中硬编码 size: 7

最佳答案

您可以将 int 转换为字节:https://play.golang.org/p/w0uBGiYOKP

val := "7"
i, _ := strconv.Atoi(val)
byteI := byte(i)
fmt.Printf("%v (%T)", byteI, byteI)



当然,因为这是一个类型断言,如果 i 不是给定的类型(在你的例子中是 byte )或者它不是一个接口(interface),它就会失败。

关于go - 在 Go 中将 int 转换为单个字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37210379/

10-15 09:26