人妻出轨合集500篇最新
  • 首页
  • 4hu44四虎www在线影院麻豆
  • 波多野结衣在线视频
  • 国产成人亚洲综合无码精品
  • sesese在线观看a片
  • 国产成人亚洲综合无码精品

    日本真人强奷动态图试看30秒 Go 語言里若何正確實現枚舉?谜底藏著官方的源碼里

    发布日期:2022-05-19 02:16    点击次数:103

    日本真人强奷动态图试看30秒

    本文轉載自微信公眾號「網管叨bi叨」,作家網管。轉載本文請聯系網管叨bi叨公眾號。

    在編程領域里,枚舉是用來暗示只包含有限數量的固定值的類型,在開發中一般用于標識錯誤碼大要狀態機。拿一個實體對象的狀態機來說,它时常與這個對象在數據庫里對應記錄的標識狀態的字段值相對應。

    在剛開始學編程的時候,你一定寫過,至少見過径直使用魔術數字進行判斷的代碼。啥叫魔術數字呢,舉個例子,要置頂一個著作的時候先判斷著作是不是已發布狀態。

    if 日本真人强奷动态图试看30秒(article.state == 2) {    // state 2 代表著作已發布 } 

    假如我們的代碼里沒有注釋日本真人强奷动态图试看30秒,大要等我們項蓄意代碼里充斥著這些魔術數字的判斷的時候,你是不是會很頭疼?

    后來我就學會了把這些狀態值定義成常量,而且也搞一個判斷對象狀態的步调單獨封裝這段邏輯。

    public class ArticleState {          public static final int Draft = 1; //草稿          public static final int Published = 2; //發布          public static final int Deleted = 3; // 已刪除 }  public  Boolean checkArticleState(int state) {          ...      } 

    這種用法,细目是比在门径里径直用魔術數字進行判斷要強好多啦,至少看著不會很頭疼,不會想罵**。

    不過后來被當時帶我的老年老說這種也有缺點,上头這個 checkArticleState 步调用來檢查著作狀態,本意是讓調用者傳入 ArticleState 的三個靜態常量之一,但由于沒有類型上的約束,因此傳入狂放一個 int 值在語法上亦然允許的,編譯器也不會建议任何劝诫,換成用枚舉更合適一些。

    em~! 我不記得大學教 Java 的那個學期老師講過這玩意啊日本真人强奷动态图试看30秒, 表妺好紧竟然流水了在线观看莫非又是一個上課玩手機錯過的知識點?......

    是以使用枚舉后我們的Java代碼變成了:

    // 使用enum而非class聲明 public enum ArticleState {       //要在enum里創建所有这个词的枚舉對象     Draft(1, "草稿");     Published(2, "已發布");     Deleted(3, "已刪除")            // 自定義屬性     private int code;      private String text;        // 構造步调必須是private的     ArticleState(int code, String text) {         this.code = id;         this.text = name;     } }  public  Boolean checkArticleState(ArticleState state) {          ...      } 

    這樣就能靠形參的枚舉類型幫我們過濾掉犯警的狀態值。把整型值作為參數傳給 checkArticleState 步调時因為類型不匹配編譯不過去,在寫代碼時編譯器也能馬上提醒出來。

    要是沒有效過 Java 的小伙伴也无谓糾結,主要的語法點我用注釋標注出來了。

    后來這兩年主要在用Go做項目日本真人强奷动态图试看30秒,我發現同样的問題 Go 里也存在,关联词 Go 并沒有提供枚舉類型,那若何做到進行狀態值的正確抵制呢?要是還是用 int 型的常量细目不行。比如:

    const (     Draft int = 1     Published = 2     Deleted   = 3 )  const (     Summer int = 1     Autumn     = 2     Winter     = 3     Spring     = 4 )  func main() {     // 輸出 true,国产成人亚洲综合无码精品 不會有任何編譯錯誤     fmt.Println(Autumn == Draft) } 

    比如上头定義了兩組 int 類型的常量,一類代表著作狀態,一類代表季節的四季。這種面目拿著作狀態與季節進行比較不會有任何編譯上的錯誤。

    谜底在 Go 內置庫大要一些咱們都表示的開源庫的代碼里就能找到。比如望望 google.golang.org/grpc/codes 里的gRPC 的錯誤碼是若何定義的,我們馬上就能昭彰該若何正確的實現枚舉。

    底下未几賣關子径直上谜底了,不想去源碼里看的,就看我這里寫的也行,都是這么做的。

    企业级细分市场该季度11.9%的增幅,是建立在上半年表现强劲的基础上,今年上半年与2020年同期相比增长了23.5%。该季度与2019年第三季度(也就是全球疫情大爆发之前)相比,收入增长了20.1%日本真人强奷动态图试看30秒,这表明企业级WLAN的市场需求是有机且强劲的。

    2021年第三季度以太网交换机市场的年化增长率为7.5%,这是建立在上半年实现增长的基础之上的。2021年前三个季度与2020年前三季度相比,增长了8.6%。从环比来看,该季度比上一季度增长9.3%。与2019年第三季度也就是疫情爆发之前相比,收入增长了9.6%,表明市场有机增长是强劲的。

    2021年是中国信息通信研究院发布《中国5G发展和经济社会影响白皮书》(以下简称《白皮书》)的第二年。该《白皮书》测算了2021年5G的经济社会影响,预计2021年5G将直接带动经济总产出1.3万亿元,直接带动经济增加值约3000亿元,间接带动总产出约3.38万亿元,间接带动经济增加值约1.23万亿元,分别比2020年增长33%、39%、31%和31%。

    我們不错用 int 作為基礎類型創建一個別名類型,Go 里邊是补助這個的

    type Season int  const (  Summer Season = 1  Autumn        = 2  Winter        = 3  Spring        = 4 ) 

    當然定義連續的常量值的時候 Go 里邊經常使用 iota,是以上头的定義還能進一步簡化。

    type Season int  const (  Summer Season = iota + 1  Autumn  Winter  Spring )  type ArticleState int  const (   Draft ArticleState = iota + 1   Published   Deleted   )  func checkArticleState(ArticleState state) {  // ...  }   func main() {    // 兩個操作數類型不匹配,編譯錯誤    fmt.Println(Autumn == Draft)    // 參數類型不匹配,編譯錯誤    checkArticleState(100)  } 

    雖然這些狀態值的底層的類型都是 int 值,关联词現在不論是進行兩個不联系類型的枚舉值比較,還是用整型值作為參數調用 checkArticleState 步调檢查著作狀態,都會酿成編譯錯誤,因為現在我們使用狀態值的地点都有了類型抵制。

    這等于為什么針對錯誤碼、狀態機這種触及有限數量狀態值的場景下不成用整型常量而是要用枚舉的原因。雖然 Go 語言里沒有像 Java 一樣單獨提供一個 enum 暗示枚舉的類型,关联词我們仍然能通過創建類型別名來實現枚舉。

     

    你學會了嗎?(#^.^#)

     



    Powered by 人妻出轨合集500篇最新 @2013-2022 RSS地图 HTML地图