在下面的代码中:
const (
signature uint32 = 0xae3179fb
dhkxGroup = 2
ReplySuccessful byte = iota
ReplyBufferCorrupted
ReplyDecryptFailed
ReplySessionExpired
ReplyPending
)
ReplySuccessful
编译为2
,而我认为它肯定应该为零。如果我移动signature
并dhkxGroup
低于ReplyPending
,则ReplySuccessful
变为 0。
为什么是这样?
PS。对我来说,使用 iota 的唯一“好处”是您可以省略分配给以后常量的值,以便您可以轻松修改/插入新值。但是,如果 iota 不固定为零,则可能会导致大问题,尤其是在处理通信协议之类的事情时。