型別
描述uint8
無符號8位整型(0到2^8 -1)
uint16
無符號16位整型(0到2^16-1)
uint32
無符號32位整型(0到2^32-1)
uint64
無符號64位整型(0到2^64-1)
int8
有符號8位整型(-2^8 到2^8-1)
int16
有符號16位整型(-2^16 到2^16-1)
int32
有符號32位整型(-2^32 到2^32-1)
int64
有符號64位整型(-2^64 到2^64-1)
package main
import
"fmt"
func
main()
型別
描述uint
32位作業系統上就是uint32,64位作業系統上就是uint64
int32位作業系統上就是int32,64位作業系統上就是int64
uintptr
無符號整型,用於存放乙個指標
注意:在使用int和uint型別時候,不能假定它是32位或64位的整型,而是考慮int和uint可能在不同平台上的差異。
注意事項:
在獲取物件的長度的內建len()函式返回的長度可以根據不同的平台的位元組長度進行變化。在實際使用中,切片或者map的元素數量等都可以使用int來表示。在涉及到二進位制傳輸、讀寫檔案的描述時,為了保護檔案的結構不會受到不同編譯目標平台位元組長度的影響,不要使用int和uint。
float32 和float64列印浮點型時候配合動詞%f
package main
import
"fmt"
import
"math"
func
main()
complex64 和complex128
var c1 complex64
c1 =1+
2ivar c2 complex128
c2 =2+
3ifmt.
println
(c1)
fmt.
println
(c2)
go語言中以bool型別進行宣告布林型資料,布林型資料只有true(真)和false(假)兩個值。
注意:布林型別變數的預設值為false。
go 語言中不允許將整型強制轉換為布林型.
布林型無法參與數值運算,也無法與其他型別進行轉換。
go語言中要定義乙個多行字串時,就必須使用反引號字元:
雙引號是字串,單引號是位元組.
字串乙個漢字佔3個位元組
func
main()
s1 :=
`第一行
第二行第三行
`fmt.
println
(s1)
反引號間換行將被作為字串中的換行,但是所有的轉義字元均無效,文字將會原樣輸出。
func
main()
var(
a =100 b = dog
c =0xff
d =0xff
e =99.9
) fmt.
printf
("%t\n"
, a)
//顯示相應的值得型別
fmt.
printf
("%d\n"
, a)
//十進位制顯示值
fmt.
printf
("%b\n"
, a)
//二進位制顯示值
fmt.
printf
("%o\n"
, a)
//八進位制顯示值
//十六進製制是以0x開頭
fmt.
printf
("%x\n"
, d)
//十六進製制表示,字母形式為小寫 a-f
fmt.
printf
("%x\n"
, c)
//十六進製制表示,字母形式為大寫 a-f
fmt.
printf
("++++++++++++++++++++++++++++\n"
) fmt.
printf
("%v\n"
, b)
//顯示相應預設的格式
fmt.
printf
("%+v\n"
, b)
//顯示相應的欄位名
fmt.
printf
("%#v\n"
, b)
//相應值的型別語法表示
fmt.
printf
("%f\n"
, e)
//浮點數
方法介紹
len(str)
求字串長度
+或者fmt.sprint
字串拼接
strings.count
字串裡某個內容出現的次數字元
strings.hasprefix,strings.hassuffix
字串中包含前字尾
strings.index,strings.lastindex
某個內容下標位置,某個內容最後一次出現的位置
string.join
join操作拼接內容
//字串基礎的的一些操作方法
func
main()
," "
) fmt.
println
("join : "
, str3)
//join : hello world
}
go 語言的字元有以下兩種:
uint8型別,或者叫 byte 型,代表了ascii碼的乙個字元。
rune型別,代表乙個 utf-8字元。
當需要處理中文、日文或者其他復合字元時,則需要用到rune型別。rune型別實際是乙個int32。
func
main()
fmt.
println()
//104(h) 101(e) 108(l) 108(l) 111(o) 23567(小) 30333(白)
for_
, r :=
range s
fmt.
println()
}
要修改字串,需要先將其轉換成rune或byte,完成後再轉換為string。無論哪種轉換,都會重新分配記憶體,並複製位元組陣列。
s1 :=
"big"
// 強制型別轉換
bytes1 :=
byte
(s1)
bytes1[0]
='p'
fmt.
println
(string
(bytes1)
) s1 :=
"big"
// 強制型別轉換
bytes1 :=
byte
(s1)
bytes1[0]
='p'
fmt.
println
(string
(bytes1)
)//pig
runes2 :=
rune
(s) fmt.
println
(len
(runes2)
) runes2[6]
='黑'
fmt.
println
(string
(runes2)
)//hello小黑
看,這裡的記憶體位址已經改變了!!!
GO學習筆記 4 資料型別之基本資料型別
go語言的字元有以下兩種型別 byte型別 是uint8的別名,代表乙個ascii碼。rune型別 是int32的別名,代表乙個utf 8字元,由乙個或多個byte組成。例如 乙個中文字元或者日文字元。字串底層是乙個byte陣列,所以可以和byte型別相互轉換,字串的長度是byte位元組的長度。s ...
Go的基本資料型別
go語言的資料型別主要分為四種 基礎型別 數字,字串,布林型別 復合型別 陣列,結構體 引用型別 指標,切片,字典,函式和通道 介面型別 go 語言的整型定義型別有符號型別主要有int8,int16,int32,int64,無符號型別uint8,uint16,uint32,uint64.int 和u...
GO語言基本資料型別
任何go語言原始碼檔案都由若干個程式實體組成的。在go語言中,變數 常量 函式 結構體和介面被統稱為 程式實體 而它們的名字被統稱為 識別符號 識別符號可以是任何unicode編碼可以表示的字母字元 數字以及下劃線 不過,首字母不能是數字或下劃線。注意 在go語言中,我們對程式實體的訪問許可權控制只...