Go語言基礎學習四-布爾與數值類型

  Go語言基礎學習四-布爾與數值類型

    前面兩篇boke老漢是利用代碼分析的方式來從大致總體及實際的角度來認識go語言的特性,今天從這一篇開始及以後則是根據go語言的基礎部分分章節進行針對性的學習,這一篇我們講解的內容是go語言最基礎的部分,註釋,go語言的關鍵字和操作符,及合法標識符構成等,一旦這些基礎性的東西講解完將會講解布爾類型,整形及浮點型。這些東西雖然簡單,但是卻是我們go語言表達最基礎的部分,在老漢覺得,無論任何語言都是在基礎表達熟練的情況下,加上自己的邏輯思維(算法)才能做到出口成章,條理清晰,代碼才能通俗易懂,結構緊湊~廢話不多說,馬上進入基礎部分的學習吧!

    註釋:go語言支持兩種類型的註釋,從C++借鑑而來,行註釋以//開頭,塊註釋以/*開頭*/結尾表示

     標識符:首字符必須是字母,不能與關鍵字同名,字母可以是下劃線或Unicode中的任何字符,且標識符區分大小寫,如little與Little就是兩個不同的標識符,且以大寫字母開頭的標識符是公開的可以導出的,其它的標識符都是私有的,(除了包名約定爲全小寫)

     空標識符”_”是一個佔位符,將某個值賦值給空標識符達到丟棄該值的目的,某個函數的返回值中忽略某些值是很常見的。

     關鍵字(25個):


預定義的標識符(36個):

   常量和變量:

    常量:使用關鍵字const聲明

    變量:使用var聲明,也可以使用快捷變量聲明語法(i := 1.5),go語言會自動推斷出所聲明變量的類型(var i = false),如果需要也可以顯示聲明變量(var i type),一般而言,對於整形字面量,go推斷爲int,對於浮點字面量,go推斷爲float64,對於複數字面量,go推斷爲complex128。通常我們不去顯式地聲明其類型。go語言會將數值變量默認爲0,將字符串默認爲空,防止未初始化。

    枚舉類型:當需要設置多個常量的時候,我們不必重複使用const關鍵字,只需要使用const關鍵字一次即可。

    const Cyan=0  const Magenta=1 const Yellow=2 等價於 const {Cyan=0 , Magenta=1, Yellow=2 }

    如果第一個常量的值沒有被顯式設置(設爲一個值或者是iota),則它的值爲0,第二個及隨後的常量值設爲前面一個常量的值。或前面的值設爲iota,後續值也爲iota,後續的每一個iota都比前面的iota大1,如const {Cyan=iota //0 , Magenta  //1, Yellow //2},iota預定義的標識符表示連續的無類型整數常量,每次關鍵字出現時,它的值會設爲0。也可以將iota與浮點數,表達式以及自定義類型一起使用。

    type BitFlag int 

    const{

        Active BitFlag =1<<iota //1<<0 == 1

        Send          //隱式地設置爲BitFlag = 1<<iota == 2

        Receive      //隱式地設置爲BitFlag = 1<<iota == 4

    }

      flag := Active | Send  //按位或操作,flag==001|010 == 011 ==3


 布爾值和布爾表達式(內置布爾值true false)

  二元邏輯操作符(||和&&)採用短路邏輯,這意味着如果我們表達式爲b1||b2如果b1爲true則不考慮b2,同理b1||b2中b1爲false則不考慮b2

  無類型的數值常量可以與任何類型的數值兼容。,爲了在不同數值類型之間進行運算或比較,則需要採用type(value)的形式,如i:=int(j)

  go語言的整數類型:


rune 類型是 Unicode 字符類型,和 int32 類型等價,通常用於表示一個 Unicode 碼點。rune 和 int32 可以互換使用。

byte 是uint8類型的等價類型,byte類型一般用於強調數值是一個原始的數據而不是 一個小的整數。

uintptr 是一種無符號的整數類型,沒有指定具體的bit大小但是足以容納指針。 uintptr類型只有在底層編程是才需要,特別是Go語言和C語言函數庫或操作系統接口相交互的地方。

不管它們的具體大小,int、uint和uintptr是不同類型的兄弟類型。其中int和int32也是 不同的類型, 即使int的大小也是32bit,在需要將int當作int32類型的地方需要一個顯式 的類型轉換操作,反之亦然。

有符號整數採用 2 的補碼形式表示,也就是最高 bit 位用作表示符號位,一個 n bit 的有 符號數的值域是從 -2^{n-1} 到 2^{n-1}-1。例如,int8類型整數的值域是從-128 到 127, 而uint8類型整數的值域是從0到255。


go語言標準庫提供了兩個無限精度的整數類型:用於整數的big.Int以及用於有理數的big.Rat(包括可以表示成分數的數字2/3)

浮點類型:float32,float64,complex64(實部和虛部都是float32位),complex128(實部和虛部都是float64)

math包中有很多函數學用途的函數工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章