国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Go語言基礎(chǔ)之基本數(shù)據(jù)類型

這篇具有很好參考價值的文章主要介紹了Go語言基礎(chǔ)之基本數(shù)據(jù)類型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Go語言中有豐富的數(shù)據(jù)類型,除了基本的整型、浮點型、布爾型、字符串外,還有數(shù)組、切片、結(jié)構(gòu)體、函數(shù)、map、通道(channel)等。Go 語言的基本類型和其他語言大同小異。

基本數(shù)據(jù)類型

整型

整型分為以下兩個大類: 按長度分為:int8、int16、int32、int64 對應(yīng)的無符號整型:uint8、uint16、uint32、uint64

其中,uint8就是我們熟知的byte型,int16對應(yīng)C語言中的short型,int64對應(yīng)C語言中的long型。
Go語言基礎(chǔ)之基本數(shù)據(jù)類型,Go,golang,服務(wù)器,開發(fā)語言

特殊整型

Go語言基礎(chǔ)之基本數(shù)據(jù)類型,Go,golang,服務(wù)器,開發(fā)語言
注意: 在使用int和 uint類型時,不能假定它是32位或64位的整型,而是考慮int和uint可能在不同平臺上的差異。

注意事項 獲取對象的長度的內(nèi)建len()函數(shù)返回的長度可以根據(jù)不同平臺的字節(jié)長度進(jìn)行變化。實際使用中,切片或 map 的元素數(shù)量等都可以用int來表示。在涉及到二進(jìn)制傳輸、讀寫文件的結(jié)構(gòu)描述時,為了保持文件的結(jié)構(gòu)不會受到不同編譯目標(biāo)平臺字節(jié)長度的影響,不要使用int和 uint。

數(shù)字字面量語法(Number literals syntax)

Go1.13版本之后引入了數(shù)字字面量語法,這樣便于開發(fā)者以二進(jìn)制、八進(jìn)制或十六進(jìn)制浮點數(shù)的格式定義數(shù)字,例如:

v := 0b00101101, 代表二進(jìn)制的 101101,相當(dāng)于十進(jìn)制的 45。 v := 0o377,代表八進(jìn)制的 377,相當(dāng)于十進(jìn)制的 255。 v := 0x1p-2,代表十六進(jìn)制的 1 除以 22,也就是 0.25。

而且還允許我們用 _ 來分隔數(shù)字,比如說: v := 123_456 表示 v 的值等于 123456。

我們可以借助fmt函數(shù)來將一個整數(shù)以不同進(jìn)制形式展示。

package main
 
import "fmt"
 
func main(){
	// 十進(jìn)制
	var a int = 10
	fmt.Printf("%d \n", a)  // 10
	fmt.Printf("%b \n", a)  // 1010  占位符%b表示二進(jìn)制
 
	// 八進(jìn)制  以0開頭
	var b int = 077
	fmt.Printf("%o \n", b)  // 77
 
	// 十六進(jìn)制  以0x開頭
	var c int = 0xff
	fmt.Printf("%x \n", c)  // ff
	fmt.Printf("%X \n", c)  // FF
}

浮點型

Go語言支持兩種浮點型數(shù):float32和float64。這兩種浮點型數(shù)據(jù)格式遵循IEEE 754標(biāo)準(zhǔn): float32 的浮點數(shù)的最大范圍約為 3.4e38,可以使用常量定義:math.MaxFloat32。 float64 的浮點數(shù)的最大范圍約為 1.8e308,可以使用一個常量定義:math.MaxFloat64。

package main
import (
        "fmt"
        "math"
)
func main() {
        fmt.Printf("%f\n", math.Pi)
        fmt.Printf("%.2f\n", math.Pi)
}

復(fù)數(shù)

complex64和complex128

var c1 complex64
c1 = 1 + 2i
var c2 complex128
c2 = 2 + 3i
fmt.Println(c1)
fmt.Println(c2)

復(fù)數(shù)有實部和虛部,complex64的實部和虛部為32位,complex128的實部和虛部為64位。

布爾值

Go語言中以bool類型進(jìn)行聲明布爾型數(shù)據(jù),布爾型數(shù)據(jù)只有true(真)和false(假)兩個值。
注意:

  1. 布爾類型變量的默認(rèn)值為false。
  2. Go 語言中不允許將整型強制轉(zhuǎn)換為布爾型.
  3. 布爾型無法參與數(shù)值運算,也無法與其他類型進(jìn)行轉(zhuǎn)換。

字符串

Go語言中的字符串以原生數(shù)據(jù)類型出現(xiàn),使用字符串就像使用其他原生數(shù)據(jù)類型(int、bool、float32、float64 等)一樣。 Go 語言里的字符串的內(nèi)部實現(xiàn)使用UTF-8編碼。 字符串的值為雙引號(")中的內(nèi)容,可以在Go語言的源碼中直接添加非ASCII碼字符,例如:

s1 := "hello"
s2 := "你好"
字符串轉(zhuǎn)義符

Go 語言的字符串常見轉(zhuǎn)義符包含回車、換行、單雙引號、制表符等,如下表所示。
Go語言基礎(chǔ)之基本數(shù)據(jù)類型,Go,golang,服務(wù)器,開發(fā)語言

多行字符串

Go語言中要定義一個多行字符串時,就必須使用反引號字符:

s1 := `第一行
第二行
第三行
`
fmt.Println(s1)

反引號間換行將被作為字符串中的換行,但是所有的轉(zhuǎn)義字符均無效,文本將會原樣輸出。

字符串的常用操作

Go語言基礎(chǔ)之基本數(shù)據(jù)類型,Go,golang,服務(wù)器,開發(fā)語言

byte和rune類型

組成每個字符串的元素叫做“字符”,可以通過遍歷或者單個獲取字符串元素獲得字符。 字符用單引號(’)包裹起來,如:

var a = '中'
var b = 'x'

Go 語言的字符有以下兩種:

  1. uint8類型,或者叫 byte 型,代表一個ASCII碼字符。
  2. rune類型,代表一個 UTF-8字符。

當(dāng)需要處理中文、日文或者其他復(fù)合字符時,則需要用到rune類型。rune類型實際是一個int32。

Go 使用了特殊的 rune 類型來處理 Unicode,讓基于 Unicode 的文本處理更為方便,也可以使用 byte 型進(jìn)行默認(rèn)字符串處理,性能和擴展性都有照顧。

// 遍歷字符串
func traversalString() {
	s := "hello沙河"
	for i := 0; i < len(s); i++ { //byte
		fmt.Printf("%v(%c) ", s[i], s[i])
	}
	fmt.Println()
	for _, r := range s { //rune
		fmt.Printf("%v(%c) ", r, r)
	}
	fmt.Println()
}

輸出:

104(h) 101(e) 108(l) 108(l) 111(o) 230(?) 178(2) 153() 230(?) 178(2) 179(3) 
104(h) 101(e) 108(l) 108(l) 111(o) 27801() 27827() 

因為UTF8編碼下一個中文漢字由3~4個字節(jié)組成,所以我們不能簡單的按照字節(jié)去遍歷一個包含中文的字符串,否則就會出現(xiàn)上面輸出中第一行的結(jié)果。

字符串底層是一個byte數(shù)組,所以可以和[]byte類型相互轉(zhuǎn)換。字符串是不能修改的 字符串是由byte字節(jié)組成,所以字符串的長度是byte字節(jié)的長度。 rune類型用來表示utf8字符,一個rune字符由一個或多個byte組成。

修改字符串

要修改字符串,需要先將其轉(zhuǎn)換成[]rune或[]byte,完成后再轉(zhuǎn)換為string。無論哪種轉(zhuǎn)換,都會重新分配內(nèi)存,并復(fù)制字節(jié)數(shù)組。

func changeString() {
	s1 := "big"
	// 強制類型轉(zhuǎn)換
	byteS1 := []byte(s1)
	byteS1[0] = 'p'
	fmt.Println(string(byteS1))

	s2 := "白蘿卜"
	runeS2 := []rune(s2)
	runeS2[0] = '紅'
	fmt.Println(string(runeS2))
}
類型轉(zhuǎn)換

Go語言中只有強制類型轉(zhuǎn)換,沒有隱式類型轉(zhuǎn)換。該語法只能在兩個類型之間支持相互轉(zhuǎn)換的時候使用。

強制類型轉(zhuǎn)換的基本語法如下:

T(表達(dá)式)

其中,T表示要轉(zhuǎn)換的類型。表達(dá)式包括變量、復(fù)雜算子和函數(shù)返回值等.

比如計算直角三角形的斜邊長時使用math包的Sqrt()函數(shù),該函數(shù)接收的是float64類型的參數(shù),而變量a和b都是int類型的,這個時候就需要將a和b強制類型轉(zhuǎn)換為float64類型。文章來源地址http://www.zghlxwxcb.cn/news/detail-658274.html

func sqrtDemo() {
	var a, b = 3, 4
	var c int
	// math.Sqrt()接收的參數(shù)是float64類型,需要強制轉(zhuǎn)換
	c = int(math.Sqrt(float64(a*a + b*b)))
	fmt.Println(c)
}

到了這里,關(guān)于Go語言基礎(chǔ)之基本數(shù)據(jù)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • go基礎(chǔ)09-Go語言的字符串類型

    字符串類型是現(xiàn)代編程語言中最常使用的數(shù)據(jù)類型之一。在Go語言的先祖之一C語言當(dāng)中,字符串類型并沒有被顯式定義,而是以字符串字面值常量或以’\\0’結(jié)尾的字符類型(char)數(shù)組來呈現(xiàn)的: 這給C程序員在使用字符串時帶來一些問題,諸如: ● 類型安全性差; ● 字符

    2024年02月09日
    瀏覽(28)
  • 【Go 基礎(chǔ)篇】Go語言結(jié)構(gòu)體基本使用

    【Go 基礎(chǔ)篇】Go語言結(jié)構(gòu)體基本使用

    在Go語言中,結(jié)構(gòu)體是一種重要的數(shù)據(jù)類型,用于定義和組織一組不同類型的數(shù)據(jù)字段。結(jié)構(gòu)體允許開發(fā)者創(chuàng)建自定義的復(fù)合數(shù)據(jù)類型,類似于其他編程語言中的類。本文將深入探討Go語言中結(jié)構(gòu)體的定義、初始化、嵌套、方法以及與其他語言的對比,以便全面了解如何在Go中

    2024年02月10日
    瀏覽(26)
  • 2.如何選擇go語言基礎(chǔ)類型——Leetcode習(xí)題9

    目錄 本篇前瞻 Leetcode習(xí)題9 題目描述 原題解析 代碼編寫 有符號整形 基本數(shù)據(jù)類型 整形 有符號整形 無符號整形 浮點型 布爾型 字符 本篇小結(jié) 下一篇預(yù)告 歡迎來go語言的基礎(chǔ)篇,這里會幫你梳理一下go語言的基本類型,注意本篇有參考go圣經(jīng),如果你有完整學(xué)習(xí)的需求可以看

    2024年02月12日
    瀏覽(23)
  • 【Go 基礎(chǔ)篇】Go語言字符類型:解析字符的本質(zhì)與應(yīng)用

    字符類型是計算機編程中用于表示文本和字符的數(shù)據(jù)類型,是構(gòu)建字符串的基本單位。在Go語言(Golang)中,字符類型具有獨特的特點和表示方式,包括Unicode編碼、字符字面值以及字符操作。本篇博客將深入探討Go語言中的字符類型,介紹字符的編碼方式、字符字面值的表示

    2024年02月13日
    瀏覽(22)
  • 【Go 基礎(chǔ)篇】Go語言結(jié)構(gòu)體詳解:打開自定義類型的大門

    【Go 基礎(chǔ)篇】Go語言結(jié)構(gòu)體詳解:打開自定義類型的大門

    嗨,Go語言學(xué)習(xí)者們!在編程的世界里,數(shù)據(jù)是核心,而結(jié)構(gòu)體(Struct)是一種能夠幫助我們更有組織地存儲和操作數(shù)據(jù)的重要工具。在本篇博客中,我們將深入探討Go語言中結(jié)構(gòu)體的概念、定義、初始化、嵌套、方法以及與面向?qū)ο缶幊痰年P(guān)系,帶你逐步領(lǐng)略結(jié)構(gòu)體的魅力。

    2024年02月10日
    瀏覽(20)
  • 100天精通Golang(基礎(chǔ)入門篇)——第23天:錯誤處理的藝術(shù): Go語言實戰(zhàn)指南

    100天精通Golang(基礎(chǔ)入門篇)——第23天:錯誤處理的藝術(shù): Go語言實戰(zhàn)指南

    ???? 博主貓頭虎???? 帶您進(jìn)入 Golang 語言的新世界???? ?? 博客首頁 ——????貓頭虎的博客?? ?? 《面試題大全專欄》 ?? 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍專欄》 ?? 學(xué)會IDEA常用操作,工作效率翻倍~?? ?? 《100天精通

    2024年02月07日
    瀏覽(36)
  • 100天精通Golang(基礎(chǔ)入門篇)——第15天:深入解析Go語言中函數(shù)的應(yīng)用:從基礎(chǔ)到進(jìn)階,助您精通函數(shù)編程?。ㄟM(jìn)階)

    100天精通Golang(基礎(chǔ)入門篇)——第15天:深入解析Go語言中函數(shù)的應(yīng)用:從基礎(chǔ)到進(jìn)階,助您精通函數(shù)編程?。ㄟM(jìn)階)

    ?? 博主 libin9iOak帶您 Go to Golang Language.? ?? 個人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會IDEA常用操作,工作效率翻倍~?? ?? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬請批

    2024年02月12日
    瀏覽(36)
  • 100天精通Golang(基礎(chǔ)入門篇)——第12天:深入解析Go語言中的集合(Map)及常用函數(shù)應(yīng)用

    100天精通Golang(基礎(chǔ)入門篇)——第12天:深入解析Go語言中的集合(Map)及常用函數(shù)應(yīng)用

    ?? 博主 libin9iOak帶您 Go to Golang Language.? ?? 個人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會IDEA常用操作,工作效率翻倍~?? ?? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬請批

    2024年02月12日
    瀏覽(27)
  • VHDL語言基礎(chǔ)-數(shù)據(jù)類型及運算符

    VHDL語言基礎(chǔ)-數(shù)據(jù)類型及運算符

    目錄 VHDL的數(shù)據(jù)類型: VHDL中定義的10種標(biāo)準(zhǔn)數(shù)據(jù)類型: 約束區(qū)間說明: 用戶自定義數(shù)據(jù)類型: 使用格式: 常用的用戶自定義類型: 枚舉類型: 子類型SUBTYPE: 整數(shù)類型和實數(shù)類型: 數(shù)組類型: 記錄類型: 數(shù)據(jù)類型轉(zhuǎn)換: VHDL的運算符:? 運算符的優(yōu)先級: 注意:字符要區(qū)

    2024年02月09日
    瀏覽(31)
  • 【C語言基礎(chǔ)考研向】02 數(shù)據(jù)類型-常量-變量

    【C語言基礎(chǔ)考研向】02 數(shù)據(jù)類型-常量-變量

    文章目錄: 一.數(shù)據(jù)類型 二.常量 三.變量 四. 整型數(shù)據(jù) 五.浮點型數(shù)據(jù) 六.字符型數(shù)據(jù) 七.字符串常量 數(shù)據(jù)類型分為四大類: 基本類型 整型 浮點 字符型 構(gòu)造類型 數(shù)組 結(jié)構(gòu)體 指針類型 空類型 常量是指在程序運行過程中,其值不發(fā)生變化的量。常量又可分為整型、實型(也稱浮

    2024年01月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包