亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

iota的確切含義是什么?

iota的確切含義是什么?

Go
搖曳的薔薇 2022-09-12 20:21:13
在下面的代碼中:const (    signature uint32 = 0xae3179fb    dhkxGroup = 2    ReplySuccessful byte = iota    ReplyBufferCorrupted    ReplyDecryptFailed    ReplySessionExpired    ReplyPending)ReplySuccessful編譯為 ,而我認為它肯定應該是零。如果我移動并低于 ,則變為 0。2signaturedhkxGroupReplyPendingReplySuccessful這是為什么呢?PS.對我來說,使用iota的唯一“好處”是您可以省略分配給以后常量的值,以便您可以輕松修改/插入新值。但是,如果iota沒有固定為零,則可能會導致大問題,尤其是在執行通信協議等操作時。
查看完整描述

1 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

規范定義了iota在Go中的用法(著重號是后加的):

在常量聲明中,預聲明的標識符 iota 表示連續的非類型化整數常量。它的值是該常量聲明中相應 ConstSpec 的索引,從零開始。

請注意,索引是相對于 的,基本上表示當前塊。ConstSpecconst

特別令人感興趣的可能是提供的示例:

const (

  a = 1 << iota  // a == 1  (iota == 0)

  b = 1 << iota  // b == 2  (iota == 1)

  c = 3          // c == 3  (iota == 2, unused)

  d = 1 << iota  // d == 8  (iota == 3)

)

請注意,第 3 行(值 2)未使用。您基本上具有相同的,首先是兩個未使用的值。


您在代碼中可能意味著:


const (

    signature uint32 = 0xae3179fb

    dhkxGroup = 2

)


const (

    ReplySuccessful byte = iota

    ReplyBufferCorrupted

    ReplyDecryptFailed

    ReplySessionExpired

    ReplyPending

)


查看完整回答
反對 回復 2022-09-12
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號