欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

go語(yǔ)言中的數(shù)據(jù)類(lèi)型怎么用

這篇文章主要介紹了go語(yǔ)言中的數(shù)據(jù)類(lèi)型怎么用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇go語(yǔ)言中的數(shù)據(jù)類(lèi)型怎么用文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

創(chuàng)新互聯(lián)建站-成都網(wǎng)站建設(shè)公司,專(zhuān)注網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)推廣,主機(jī)域名,網(wǎng)站空間網(wǎng)站運(yùn)營(yíng)有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)建站。

go語(yǔ)言的數(shù)據(jù)類(lèi)型有:1、布爾型;2、數(shù)值類(lèi)型(可分為整型和浮點(diǎn)型);3、字符串類(lèi)型;4、指針類(lèi)型;5、數(shù)組類(lèi)型;6、結(jié)構(gòu)化類(lèi)型;7、Channel類(lèi)型;8、函數(shù)類(lèi)型;9、切片類(lèi)型;10、接口類(lèi)型;11、Map類(lèi)型。

Go 語(yǔ)言是一種靜態(tài)類(lèi)型的編程語(yǔ)言,在 Go 編程語(yǔ)言中,數(shù)據(jù)類(lèi)型用于聲明函數(shù)和變量。數(shù)據(jù)類(lèi)型的出現(xiàn)是為了把數(shù)據(jù)分成所需內(nèi)存大小不同的數(shù)據(jù),編程的時(shí)候需要用大數(shù)據(jù)的時(shí)候才需要申請(qǐng)大內(nèi)存,就可以充分利用內(nèi)存。編譯器在進(jìn)行編譯的時(shí)候,就要知道每個(gè)值的類(lèi)型,這樣編譯器就知道要為這個(gè)值分配多少內(nèi)存,并且知道這段分配的內(nèi)存表示什么。

go語(yǔ)言中的數(shù)據(jù)類(lèi)型怎么用

基本數(shù)據(jù)類(lèi)型說(shuō)明

類(lèi)型描述
uint32位或64位
uint8無(wú)符號(hào) 8 位整型 (0 到 255)
uint16無(wú)符號(hào) 16 位整型 (0 到 65535)
uint32無(wú)符號(hào) 32 位整型 (0 到 4294967295)
uint64無(wú)符號(hào) 64 位整型 (0 到 18446744073709551615)
int32位或64位
int8有符號(hào) 8 位整型 (-128 到 127)
int16有符號(hào) 16 位整型 (-32768 到 32767)
int32有符號(hào) 32 位整型 (-2147483648 到 2147483647)
int64有符號(hào) 64 位整型 (-9223372036854775808 到 9223372036854775807)
byteuint8的別名(type byte = uint8)
runeint32的別名(type rune = int32),表示一個(gè)unicode碼
uintptr無(wú)符號(hào)整型,用于存放一個(gè)指針是一種無(wú)符號(hào)的整數(shù)類(lèi)型,沒(méi)有指定具體的bit大小但是足以容納指針。
uintptr類(lèi)型只有在底層編程是才需要,特別是Go語(yǔ)言和C語(yǔ)言函數(shù)庫(kù)或操作系統(tǒng)接口相交互的地方。
float32IEEE-754 32位浮點(diǎn)型數(shù)
float64IEEE-754 64位浮點(diǎn)型數(shù)
complex6432 位實(shí)數(shù)和虛數(shù)
complex12864 位實(shí)數(shù)和虛數(shù)

整型

整型數(shù)據(jù)分為兩類(lèi),有符號(hào)無(wú)符號(hào)兩種類(lèi)型

有符號(hào): int, int8, int16, int32, int64

無(wú)符號(hào): uint, uint8, uint16, uint32, uint64, byte
不同位數(shù)的整型區(qū)別在于能保存整型數(shù)字范圍的大??;

有符號(hào)類(lèi)型可以存儲(chǔ)任何整數(shù),無(wú)符號(hào)類(lèi)型只能存儲(chǔ)自然數(shù)

int和uint的大小和系統(tǒng)有關(guān),32位系統(tǒng)表示int32和uint32,如果是64位系統(tǒng)則表示int64和uint64

byte與uint8類(lèi)似,一般用來(lái)存儲(chǔ)單個(gè)字符

在保證程序正確運(yùn)行下,盡量使用占用空間小的數(shù)據(jù)類(lèi)型

fmt.Printf("%T", var_name)輸出變量類(lèi)型

unsafe.Sizeof(var_name)查看變量占用字節(jié)

浮點(diǎn)型

浮點(diǎn)型也就是小數(shù)類(lèi)型,可以存放小數(shù)。比如6.6,-12.34

1、關(guān)于浮點(diǎn)數(shù)在機(jī)器中存放形式的簡(jiǎn)單說(shuō)明,浮點(diǎn)數(shù)=符號(hào)位+指數(shù)位+尾數(shù)位

2、尾數(shù)部分可能丟失,造成精度損失。-123.0000901

package main

import "fmt"

func main() {
    
    var num1 float32 = -123.0000901
    var num2 float64 = -123.0000901
    fmt.Println("num1 = ", num1, "num2 = ", num2);
}

go語(yǔ)言中的數(shù)據(jù)類(lèi)型怎么用

說(shuō)明:float64的精度要比f(wàn)loat32的要準(zhǔn)確

說(shuō)明:如果我們要保存一個(gè)精度高的數(shù),則應(yīng)該選擇float64

3、浮點(diǎn)型的存儲(chǔ)分為三部分:符號(hào)位+指數(shù)位+尾數(shù)位,在存儲(chǔ)過(guò)程中,精度會(huì)有丟失

4、golang的浮點(diǎn)型默認(rèn)為float64類(lèi)型

5、通常情況下,應(yīng)該使用float64,因?yàn)樗萬(wàn)loat32更精確

6、0.123可以簡(jiǎn)寫(xiě)成.123,也支持科學(xué)計(jì)數(shù)法表示:5.1234e2 等價(jià)于512.34

字符

Golang中沒(méi)有專(zhuān)門(mén)的字符類(lèi)型,如果要存儲(chǔ)單個(gè)字符(字母),一般使用byte來(lái)保存。

字符串就是一串固定長(zhǎng)度的字符連接起來(lái)的字符序列。Go的字符串是由單個(gè)字節(jié)連接起來(lái)的,也就是說(shuō)對(duì)于傳統(tǒng)的字符串是由字符組成的,而Go的字符串不同,它是由字節(jié)組成的。

  • 字符只能被單引號(hào)包裹,不能用雙引號(hào),雙引號(hào)包裹的是字符串

  • 當(dāng)我們直接輸出type值時(shí),就是輸出了對(duì)應(yīng)字符的ASCII碼值

  • 當(dāng)我們希望輸出對(duì)應(yīng)字符,需要使用格式化輸出

  • Go語(yǔ)言的字符使用UTF-8編碼,英文字母占一個(gè)字符,漢字占三個(gè)字符

  • 在Go中,字符的本質(zhì)是一個(gè)整數(shù),直接輸出時(shí),是該字符對(duì)應(yīng)的UTF-8編碼的碼值。

  • 可以直接給某個(gè)變量賦一個(gè)數(shù)字,然后按格式化輸出時(shí)%c,會(huì)輸出該數(shù)字對(duì)應(yīng)的unicode字符

  • 字符類(lèi)型是可以運(yùn)算的,相當(dāng)于一個(gè)整數(shù),因?yàn)樗鼈兌加袑?duì)應(yīng)的unicode碼

package main

import "fmt"

func main() {
    
    //字符只能被單引號(hào)包裹,不能用雙引號(hào),雙引號(hào)包裹的是字符串
    var c1 byte = 'a'
    var c2 byte = '0'

    //當(dāng)我們直接輸出type值時(shí),就是輸出了對(duì)應(yīng)字符的ASCII碼值
    //'a' ==> 97
    fmt.Println(c1, "--", c2)
    //如果我們希望輸出對(duì)應(yīng)字符,需要使用格式化輸出
    fmt.Printf("c2 = %c c2 = %c", c1, c2)
}

go語(yǔ)言中的數(shù)據(jù)類(lèi)型怎么用

但是如果我們保存的字符大于255,比如存儲(chǔ)漢字,這時(shí)byte類(lèi)型就無(wú)法保存,此時(shí)可以使用uint或int類(lèi)型保存

字符類(lèi)型本質(zhì)探討

  • 字符型存儲(chǔ)到計(jì)算機(jī)中,需要將字符對(duì)應(yīng)的碼值(整數(shù))找出來(lái)

    存儲(chǔ):字符 --> 碼值 --> 二進(jìn)制 --> 存儲(chǔ)

    讀取: 二進(jìn)制 -->碼值 --> 字符 --> 讀取

  • 字符和碼值的對(duì)應(yīng)關(guān)系是通過(guò)字符編碼表決定的(是規(guī)定好的)

  • Go語(yǔ)言的編碼都統(tǒng)一成了UTF-8。非常的方便,很統(tǒng)一,再也沒(méi)有編碼亂碼的困擾了

布爾型

布爾類(lèi)型也叫做bool類(lèi)型,bool類(lèi)型數(shù)據(jù)只允許取值true或false

bool類(lèi)型占1個(gè)字節(jié)

bool類(lèi)型適用于邏輯運(yùn)算,一般用于流程控制

字符串

字符串就是一串固定長(zhǎng)度的字符連接起來(lái)的字符序列。Go的字符串是由單個(gè)字節(jié)連接起來(lái)的。Go語(yǔ)言的字符串的字節(jié)使用UTF-8編碼標(biāo)識(shí)Unicode文本

1、字符串一旦賦值了,就不能修改了:在Go中字符串是不可變的。

2、字符串的兩種標(biāo)識(shí)形式

  • 雙引號(hào),會(huì)識(shí)別轉(zhuǎn)義字符

    var str = "abc\nabc" //輸出時(shí)會(huì)換行
  • 反引號(hào),以字符串的原生形式輸出,包括換行和特殊字符,可以實(shí)現(xiàn)防止攻擊、輸出源代碼等效果

    var str string = `abc\nabc` //輸出時(shí)原樣輸出,不會(huì)轉(zhuǎn)義

3、字符串拼接方式"+"

var str string = "hello " + "world"
str += "!"

4、當(dāng)一行字符串太長(zhǎng)時(shí),需要使用到多行字符串,可以使用如下處理

//正確寫(xiě)法
str := "hello" + 
	" world!"
fmt.Println(str)

//錯(cuò)誤寫(xiě)法
str := "hello "
	+ "world!"
fmt.Println(str)

指針

  • 基本數(shù)據(jù)類(lèi)型,變量存的就是值,也叫值類(lèi)型

  • 獲取變量的地址,用&,比如var num int,獲取num的地址:&num

  • 指針類(lèi)型,指針變量存的是一個(gè)地址,這個(gè)地址指向的空間存的才是值,比如:var ptr *int = &num

  • 獲取指針類(lèi)型所指向的值,使用:*,比如,var ptr *int,使用*ptr獲取ptr指向的值

指針細(xì)節(jié)說(shuō)明:

  • 值類(lèi)型,都有對(duì)應(yīng)的指針類(lèi)型,形式為*數(shù)據(jù)類(lèi)型,比如int對(duì)應(yīng)的指針就是*int,float64對(duì)應(yīng)的指針類(lèi)型就是*float64,依此類(lèi)推。

  • 值類(lèi)型包括:基本數(shù)據(jù)類(lèi)型、數(shù)組結(jié)構(gòu)體struct

值類(lèi)型與引用類(lèi)型

值類(lèi)型和引用類(lèi)型使用特點(diǎn):

值類(lèi)型:變量直接存儲(chǔ)值,內(nèi)存通常在中分配

引用類(lèi)型:變量存儲(chǔ)的是一個(gè)地址,這個(gè)地址對(duì)應(yīng)的空間才真正存儲(chǔ)數(shù)據(jù)(值),內(nèi)存通常在上分配,當(dāng)沒(méi)有任何變量應(yīng)用這個(gè)地址時(shí),該地址對(duì)應(yīng)的數(shù)據(jù)空間就成為一個(gè)垃圾,由GC來(lái)回收。

Golang中值類(lèi)型和引用類(lèi)型的區(qū)分

  • 值類(lèi)型:基本數(shù)據(jù)類(lèi)型(int系列、float系列、bool、string)、數(shù)組和結(jié)構(gòu)體

  • 引用類(lèi)型:指針、slice切片、map、管道chan、interface等都是引用類(lèi)型

基本數(shù)據(jù)類(lèi)型默認(rèn)值

在Golang中,數(shù)據(jù)類(lèi)型都有一個(gè)默認(rèn)值,當(dāng)程序員沒(méi)有賦值時(shí),就會(huì)保留默認(rèn)值,在Golang中,默認(rèn)值也叫做零值。

基本數(shù)據(jù)類(lèi)型默認(rèn)值如下:

數(shù)據(jù)類(lèi)型默認(rèn)值
整型0
浮點(diǎn)型0
字符串""
布爾類(lèi)型false
package main

import "fmt"

func main() {
    
    var a int
    var b float32
    var isTrue bool
    var str string

    //這里的%v,表示按照變量的值輸出
    fmt.Printf("a = %v, b = %v, isTrue = %v, str = %v", a, b, isTrue, str)
    fmt.Println("")
}

關(guān)于“go語(yǔ)言中的數(shù)據(jù)類(lèi)型怎么用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“go語(yǔ)言中的數(shù)據(jù)類(lèi)型怎么用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱(chēng)欄目:go語(yǔ)言中的數(shù)據(jù)類(lèi)型怎么用
當(dāng)前路徑:http://aaarwkj.com/article46/gjdhhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化品牌網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈ChatGPT、商城網(wǎng)站、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
欧美日韩国产精品一区二区在线观看 | 亚洲精品91在线中文字幕| 日韩在线不卡一二三| 国产国产成人精品久久| 久久精品人妻麻豆尤物| 久久精品国产亚洲av麻豆网站| 亚州国产成人综合精品| 欧美日本一区二区四区| 色婷婷一区二区三区影片| 亚洲va在线va天堂va在线| 在线观看中文字幕日韩精品| 成人性生交大片免费男同| 欧美亚洲清纯唯美另类| 成人av在线播放亚洲| 欧美日韩午夜久久免费| 国产中文字二暮区2021综合| 青青草原精品资源视频 | 十八禁无遮挡污污污网站| 避暑地堕落人妻中文字幕| 欧美日韩亚洲一区视频| 免费无遮挡18禁视频| 国产不卡的视频在线观看| 四虎永久精品国产毛片| 日韩在线国产精品一区| 久久三级中文欧大战字幕| 婷婷色精品一区二区激情| 欧美精品一区二区毛卡片| 色香蕉精品国产综合| 2020年最新国产三级网站| 中文字幕日本专区人妻| 国产精品夜色一区二区三区不卡| 欧美大片黄片在线观看| 色婷婷激情一区二区三区| 中文字幕在线五月婷婷| 少妇高潮时会抱紧男人脖子| 在线观看中文字幕有码| 日韩精品亚洲一区二区三区免费| 国产日韩欧在线视频| 综合国产精品久久久久久| 日韩中文字幕一二一二区 | 婷婷色悠悠,色悠悠激情啪啪 |