這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
前言:
本系列還沒流產,繼續難產中,哈哈,只怪我沒專心,在期間又偷偷去學了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
-
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。
-
|