讓我們一起Go(十)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

前言:

本系列還沒流產,繼續難產中,哈哈,只怪我沒專心,在期間又偷偷去學了python,ruby,scala,haskell這幾種語言,如果你不幸是本系列的讀者,那麼你得慢慢等後面的了,等不及可以過幾年再來看看啊^_^。因為,Go語言沒那麼迫切需要用到,而且個人興趣比較廣泛,要玩的東西太多了,自然暫時無法一口氣完成Go的學習。對於讀者,只能說非常抱歉啦。廢話不多說了,今天補上一篇。

Go語言之枚舉定義:

在Go語言中通過關鍵字const來定義枚舉,const之前我們也遇到過,它用來定義常量,小樣還挺厲害,還能定義枚舉:

上面的例子中,定義了一個關於星期的枚舉,當列印Friday時候輸出5。列印Sunday輸出0。其實,在Go語言中,枚舉似乎就是常量一種特殊形式,只不過在上述代碼中出現了關鍵字iota,這個是一個非常有用的東西,可以幫你省寫很多東西,在上面他會初始化為0,然後每一行就會增加1,因此可以認為是一個自增量。於是我們就不必這樣寫了:Sunday=1   Monday=2……一個iota幫你解決一切煩惱,而且在後續中還能對iota進行操作:例如可以Monday = iota*2於是Monday就等於2了。上面說到一行定義一個iota會自增賦值給常量,那麼可以一行定義多個嗎?答案是可以,但是必須得明確指定值,不然會報錯:

發現上面枚舉的值都是整數,當然其它類型的也可以,只要相應的賦值就行了,如Sunday = "sun"。

Go語言之結構體定義:

結構體,對於學過C語言的應該很熟悉,對於C這樣的語言,沒有類的概念,結構體在很大程度上是作為封裝的主要方式,那麼在Go語言中。結構體又是如何的呢?請往下看:

發現和c語言差不多麼,如果仔細看你會發現結構體中的Name首字母N是大寫的,而age的首字母a是小寫。這可不是隨便的哦。雖然這裡我是隨便的。在Go語言中如果結構的Field首字母大寫,那麼它是public的,可以在package外訪問。而age首字母是小寫,那麼它只能在本package中被訪問。是否和java中類的欄位用private關鍵字或者public定義類似呢?
上述代碼中我們聲明並初始化st變數是一起進行的,當然也可以分開:

還有一種方式可以這樣:

ok,今天就都這裡,以後再繼續,讓我們一起GoGoGo,享受編程的快樂......

作者:Sirk  
出處:http://www.cnblogs.com/vimsk
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.