将int转换为Go中的单个字节

Ger*_*ens 4 go

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
}
Run Code Online (Sandbox Code Playgroud)

我试图标记命令行并填写配置结构但我无法弄清楚如何从int或字符串转到单个字节?

示例大小7

试着

mysize := "7"
mysize[0]
Run Code Online (Sandbox Code Playgroud)

但是后来tarm/serial告诉我serial.Config中输入错误无效

i, err := strconv.Atoi("7")
Run Code Online (Sandbox Code Playgroud)

编译器抱怨我做不到 i.(byte)

我能使其工作的唯一方法是size: 7在config结构中进行硬编码.

Dur*_*sun 15

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

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

编译器抱怨我不能做我.(字节)

当然,因为这是一种说法,它就会如果失败,i是不是给定类型的(byte在你的例子),或者它不是一个接口.