小白學習之go 基本資料型別

2021-10-04 13:40:19 字數 4283 閱讀 3480

型別

描述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語言中,我們對程式實體的訪問許可權控制只...