Golang Go Go Go part3:數據類型及操做

 

5、Go 基本類型html

一、基本類型種類java

布爾值: bool  長度 1字節  取值範圍 true, false
注意事項:不可用數字表明 true 或 false編程

 

整型: int/uint   根據運行平臺可能爲32位或64位數組

 

8位整型: int8/uint8   長度: 1字節  取值範圍:-128 ~127 / 0 ~ 255函數

字節型: byte (uint8別名),byte類型通常用於強調數值是一個原始的數據而不是 一個小的整數 ui

 

16位整型: int16/uint16   長度:2字節  取值範圍:-32768 ~ 32767 或 0 ~ 65535spa

 

32位整型: int32(rune)/uint32   長度: 4字節  取值範圍: -2^32/2 ~ 2^32/2-1 或 0 ~ 2 ^ 32 - 1 
說明:rune 是有符號的32位整型 uint32 的別名,  一般用於表示一個 Unicode 碼點。rune 和 int32 能夠互換使用。操作系統

 

64位整型: int64/uint64   長度: 8字節  取值範圍: -2^64/2 ~ 2^64/2 - 1 或 0 ~ 2 ^ 64 - 1指針

 

浮點型 float32   長度: 4字節  小數位: 精確到7code

 

浮點型  float64   長度: 8字節   小數位: 精確到15小數位

 

複數 complex64   長度: 8字節

 

複數 complex128  長度: 16字節

 

足夠保存指針的32位或64位的無符號整數類型: uintptr  
說明:uintptr 在32平臺下爲4字節,在64位平臺下是8字節

 

其餘值類型:string、 array 、 struct 

引用類型: slice(切片) 、 map(字典) 、 channel(管道)

接口類型: interface

函數類型: func 
 

 

二、整形數據類型

go 種屬於整形的數據有不少種:

rune 類型是 Unicode 字符類型,和 int32 類型等價,一般用於表示一個 Unicode 碼點。rune 和 int32 能夠互換使用。

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

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

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

 todo:

分類 類型名稱 有無符號 bit數 零值 示例 字符串格式化 備註
布爾型 bool -- 1 false var isPC bool = true %t,%v(全部類型的默認格式化輸出都是%v) 布爾型的兩個值是常量,不能使用數字0 和1替代
整數 int8 Yes 8 0   10進制%d,8進制%o ,16進制%x或%X  
int16 Yes 16 0    同上  
int32 Yes 32 0    同上  
int64 Yes 64 0    同上  
uint8 No 8 0    同上  
uint16 No 16 0    同上  
uint32 No 32 0    同上  
uint64 No 64 0    同上  
int Yes 等於cpu位數(32/64) 0    同上  
uint No 等於cpu位數 0    同上  
byte No 與 int8 等價 0   %c  %U則輸出:U+hhhh 單字節字符,與傳統 ASCII 碼對應,包含在單引號中。
rune Yes 與 uint32 等價 0   %c  %U則輸出:U+hhhh 多字節字符,與 Unicode code points對應,包含在單引號中。
uintptr No 等於cpu位數 0     uintptr 在32位平臺下爲4字節(4*8bit),在64位平臺下是8字節(8*8bit)
浮點數 float32 -- 32 0.0    %g,%f則對應浮點類型的指針;%e則對應科學計數法辦輸出;%n.mg用於指定小數位輸出  
float64 -- 64 0.0      
複數 complex64 -- 64 0    %v, 另外也可使用%f輸出實部和虛部 實數與虛數各佔32bit,實部由浮點數表示,虛部由浮點數以及小寫字母「i」表示
complex128 -- 128 0    %v, 另外也可使用%f輸出實部和虛部 實數與虛數各佔64bit,實部由浮點數表示,虛部由浮點數以及小寫字母「i」表示

字符串
string           包含在雙引號中,單行,字符前面帶斜槓的表示轉義,不可變字節數組
 raw string     ""     包含在反引號中,能夠跨越多行,沒有轉義字符功能
               

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三、變量數據類型的轉換:

go 中不存在隱式轉換,全部類型轉換必須顯式聲明

轉換隻能發生在兩種相互兼容的類型之間, 布爾類型不能夠和數字進行轉換

無論值的具體大小,int、uint和uintptr是不一樣類型的兄弟類型。其中int和int32也是 不一樣的類型, 即便int的大小也是32bit,在須要將int看成int32類型的地方須要一個顯式 的類型轉換操做,反之亦然。

var a float32 = 1.1
b := int(a)  //浮點型能夠轉換爲 int型,這有點像 java

  

 

四、類型零值

零值並不等於空值,而是當變量被聲明爲某種類型後未賦值時的默認值,一般狀況下,值類型默認值爲0, bool爲false, string爲空字符串。

 

 

五、類型的別名

go 能夠爲基本數據類型、函數、接口等任意的類型定義類型別名,語法是

type 類型別名 =  類型

 

//批量聲明類型別名
type{
  i  = int
  s = string
  fun = func()  
  inter = interface{}  
}

var x i = 1 //聲明一個 int 形變量

  

to be continued 

 

 

六、數據類型與格式化輸出

 

 

 

6、操做符及數據運算

一、數學運算

 https://www.cnblogs.com/fengbohello/p/5854108.html

 

二、比較運算

 

 

三、布爾運算

 

 

四、二進制位移運算

相關文章
相關標籤/搜索