go語言學習筆記 6 型別 基礎型別

2021-08-08 05:53:58 字數 2052 閱讀 3050

基礎型別

bool

int8     byte     int16     int     uint     uintptr

float32     float64

complex64     complex128(複數)

string

rune(字元)

error(錯誤)

bool

true/false

整型

int8           1byte                    uint8           1byte

int16         2byte                    uint16         2byte

int32         4byte                    uint32         4byte

int64         8byte                    uint64         8byte

int

uint: 與平台有關

uintptr: 32位平台下4byte,64位平台下8byte

1、推薦使用int/uint/uintptr

2、int與int32是兩種型別,不能自動型別轉換

整型變數宣告,預設int型別

運算子

+ - * / %: 同c

> < == >= <= !=: 同c

型別不同的整型不能直接比較

<< >> ^ & |:同c,左移、右移、異或、位與、位或

^x: 位反,加負號再減1(c中為~x)

浮點型

float32: 同c的float

float64: 同c的double,

預設的浮點型別

1、不同型別的浮點數不能直接進行運算,需要轉換成相同的型別

2、浮點數直接比較,可能導致不穩定的結果(未測試出來)

使用數**算的方式進行比較

return math.abs(f1-f2) < 0.00001

複數

由兩個浮點數組成,分別為實部、虛部

complex64使用float32分別儲存實部、虛部

complex128使用float64分別儲存實部、虛部,預設的處理方式 賦值

var cpx1 = 23 + 3i

cpx2 := complex(23, 3)

分別取實部/虛部

var fc1 =

real(cpx1)

fc2 :=

imag(cpx2)

其他函式

文件:

math/cmplx

string

var str string = "hello world"

1、可以通過下標獲取字元,但不能修改,

c1 := str[0]

下標從0開始

2、獲取字串長度 lengh :=

len(str)

3、字串拼接:str = str1 + str2

其他函式

文件:

strings

rune

字元型別,表示單個unicode字元

其他函式

文件:unicode包、unicode/utf8包

byte

字元型別,表示utf-8字串的單個位元組的值

常用

go 型別 摘自go語言學習筆記

從計算機實現角度來看,變數是一段或多段用來儲存資料的記憶體 go變數總是有固定的資料型別,型別決定了變數記憶體的長度和儲存格式 通過型別轉換或指標操作,我們可用不同方式修改變數值,但這並不意味著改變了變數型別 因為記憶體分配發生在執行期,所以在編碼階段我們用乙個易於閱讀的名字來表示這段記憶體。實際上...

Go語言學習筆記 Go語言資料型別

布林型 布林型的值只可以是常量true或者false。乙個簡單的例子 var b bool true。數字型別 整型int和浮點型float32 float64,go 語言支援整型和浮點型數字,並且支援複數,其中位的運算採用補碼。字串型別 字串就是一串固定長度的字元連線起來的字串行。go 的字串是由...

C語言學習筆記3 型別轉換

c語言中 資料型別可以轉換 強制型別轉換 隱式型別轉換 強制型別轉換的語法 type var name type name 強制型別轉換的結果 目標型別能容納目標值 結果不變 目標型別不能容納目標值 結果將產生截斷 注意 不是所有的強制型別轉換都能成功,當不能進行強制型別轉換時,編譯器將產生錯誤資訊...