值型別:基本資料型別是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...