03 資料型別

2021-10-10 14:26:46 字數 3221 閱讀 1555

值型別:基本資料型別是go語言實際的原子,復合資料型別是由不同的方式組合基本型別構造出來的資料型別,如:陣列,slice,map,結構體

整型    int8

,uint # 基礎型別之數字型別

浮點型 float32,float64 # 基礎型別之數字型別

複數 # 基礎型別之數字型別

布林型 bool # 基礎型別,只能存true

/false,佔據1個位元組,不能轉換為整型,0和1也不能轉換為布林

字串 string # 基礎型別

陣列 # 復合型別

結構體 struct # 復合型別

引用型別:即儲存的是對程式中乙個變數的或狀態的間接引用,對其修改將影響所有該引用的拷貝

指標    *

切片 slice

字典 map

函式 func

管道 chan

介面 inte***ce

貼士:go語言沒有字元型,可以使用byte來儲存單個字母

go變數初始化會自帶預設值,不像其他語言為空,下面列出各種資料型別對應的0值:

int

0int8

0int32

0int64

0uint

0x0rune

0//rune的實際型別是 int32

byte

0x0// byte的實際型別是 uint8

float32

0//長度為 4 byte

float64

0//長度為 8 byte

bool

false

string

""

常用格式化輸出:

%

%%字面量

%b 二進位制整數值,基數為2,或者是乙個科學記數法表示的指數為2的浮點數

%c 該值對應的unicode字元

%d 十進位制數值,基數為10

%e 科學記數法e表示的浮點或者複數

%e 科學記數法e表示的浮點或者附屬

%f 標準計數法表示的浮點或者附屬

%o 8進制度

%p 十六進製制表示的乙個位址值

%s 輸出字串或位元組陣列

%t 輸出值的型別,注意int32和int是兩種不同的型別,編譯器不會自動轉換,需要型別轉換。

%v 值的預設格式表示

%+v 類似%v,但輸出結構體時會新增欄位名

%#v 值的go語法表示

%t 單詞true或false

%q 該值對應的單引號括起來的go語法字元字面值,必要時會採用安全的轉義表示

%x 表示為十六進製制,使用a-f

%x 表示為十六進製制,使用a-f

%u 表示為unicode格式:u+

1234,等價於"u+%04x"

示例:

type user struct

user :

= user

fmt.

printf

("%%\n"

)// %

fmt.

printf

("%b\n",16

)// 10000

fmt.

printf

("%c\n",65

)// a

fmt.

printf

("%c\n"

,0x4f60

)// 你

fmt.

printf

("%u\n"

,'你'

)// u+4f60

fmt.

printf

("%x\n"

,'你'

)// 4f60

fmt.

printf

("%x\n"

,'你'

)// 4f60

fmt.

printf

("%d\n"

,'a'

)// 65

fmt.

printf

("%t\n",1

>2)

// false

fmt.

printf

("%e\n"

,4396.7777777

)// 4.396778e+03 預設精度6位

fmt.

printf

("%20.3e\n"

,4396.7777777

)// 4.397e+03 設定寬度20,精度3,寬度一般用於對齊

fmt.

printf

("%e\n"

,4396.7777777

)// 4.396778e+03

fmt.

printf

("%f\n"

,4396.7777777

)// 4396.777778

fmt.

printf

("%o\n",16

)// 20

fmt.

printf

("%p\n",[

]int

)// 0xc000016110

fmt.

printf

("hello %s\n"

,"world"

)// hello world

fmt.

printf

("hello %q\n"

,"world"

)// hello "world"

fmt.

printf

("%t\n"

,3.0

)// float64

fmt.

printf

("%v\n"

, user)

// fmt.

printf

("%+v\n"

, user)

// fmt.

printf

("%#v\n"

, user)

// main.user

03 資料型別

資料型別包括 基本資料型別和引用資料型別。基本資料型別指的是簡單的資料段,引用資料型別指的是有多個值構成的物件。當我們把變數賦值給乙個變數時,解析器首先要確認的就是這個值是基本型別值還是引用型別值。1 基本資料型別 number var a 123 typeof 檢查當前變數是什麼資料型別 cons...

03 資料型別

資料型別包括 基本資料型別和引用資料型別 基本資料型別指的是簡單的資料段,引用資料型別指的是有多個值構成的物件。當我們把變數賦值給乙個變數時,解析器首先要確認的就是這個值是基本型別值還是引用型別值 var a 123 typeof 檢查當前變數是什麼資料型別 console.log typeof a...

php資料型別03

特殊情況如下 a 2012abcd b qq2012abcd var dump int a 輸出2012,非數字部分就會被抹去 var dump int b 輸出的是0,全部都被抹掉了 a 2012 settype a int settype直接改變作用體變數型別,而強制轉換是複製乙個物件 intv...