91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言中的數據類型有哪些及類型間怎么轉換

發布時間:2022-04-12 15:22:32 來源:億速云 閱讀:168 作者:iii 欄目:開發技術

這篇“Go語言中的數據類型有哪些及類型間怎么轉換”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Go語言中的數據類型有哪些及類型間怎么轉換”文章吧。

1、基本數據類型

數據類型有很多,先研究一下基礎的,例如:布爾型、數字類型、字符串類型。

數字類型有uint8、uint16、uint32、uint64、int8、int16、int32、int64(uint和int區別在于uint為無符號整數,即只支持正數,不支持負數形式)

數字浮點型有fload32、float64、complex64、complex126(后面兩個均為實數和虛數類型,暫時先不研究)

樣例代碼如下:

//數據類型
func test_data() {
	var a bool
	var b int16
	var c uint64 = 1231254353452
	var d float32 = 1.78
	fmt.Println(a)
	fmt.Println(b)
	fmt.Println(c)
	fmt.Println(d)
	fmt.Println("int8范圍:", math.MinInt8, math.MaxInt8)
	fmt.Println("uint8范圍:", math.MaxUint8)
}

執行結果

false
0                                               
1231254353452                                   
1.78                                            
int8范圍: -128 127                              
uint8范圍: 255   

注意

1、如果沒有賦值的基礎數據類型變量具有初始值,不像java默認為null。bool類型的初始值為false,int的初始值為0。

2、uint和int的取值范圍不一樣,uint只是正數。

2、基礎數據類型轉換

在工程中常常遇到數據類型轉換問題,測試一下。

樣例代碼如下

//數據類型轉換
func test_convert() {
	var num int = 10
	var num1 float32 = float32(num)
	var num2 float64 = float64(num)
	fmt.Printf("num類型為%T,num1類型為%T,num2類型為%T\n", num, num1, num2)
}

執行結果

num類型為int,num1類型為float32,num2類型為float64

注意一下Printf中格式化的動詞使用,特意找了下,整理一下。

動詞功能
%v按照值的本來值輸出
%+v在%v基礎上,對結構體字段名和值進行展開
%#v輸出Go語言語法格式的值
%T輸出Go語言數據類型
%%輸出%本體
%b輸出以二進制方式顯示的整型
%o輸出以八進制方式顯示的整型
%d輸出以十進制方式顯示的整型
%x輸出以十六進制方式顯示的整型,小寫
%X輸出以十六進制方式顯示的整型,大寫
%U以Unicode字符方式輸出
%f以浮點型方式輸出
%p指針,十六進制方式顯

3、基本數據類型轉為字符串

這也是工程中經常使用的場景。

樣例代碼如下,先使用fmt的Sprintf方法轉換。

//基礎數據類型轉為string
func test_convert_string() {
	var a int = 10
	var b float64 = 1.8
	var c bool = true
	var d byte = 'd'
	var e uint64 = 8
	var str string
	fmt.Println(str + "a")
	str = fmt.Sprintf("%d", a)
	fmt.Printf("str類型為%T,str=%v\n", str, str)
	str = fmt.Sprintf("%f", b)
	fmt.Printf("str類型為%T,str=%v\n", str, str)
	str = fmt.Sprintf("%t", c)
	fmt.Printf("str類型為%T,str=%v\n", str, str)
	str = fmt.Sprintf("%c", d)
	fmt.Printf("str類型為%T,str=%v\n", str, str)
	str = fmt.Sprintf("%b", e)
	fmt.Printf("str類型為%T,str=%v\n", str, str)
}

執行結果

a                                               
str類型為string,str=10                          
str類型為string,str=1.800000                    
str類型為string,str=true                        
str類型為string,str=d                           
str類型為string,str=1000 

注意

1、可以看到如果沒有對字符串類型做初始復制,會默認為空字符串。

4、strconv的使用

使用strconv可以對各種數據類型進行字符串轉換。

樣例如下

//strconv的使用
func test_strconv() {
	var i int = 10
	var x int = 999
	var f float64 = 1.8
	var t bool = false
	var z int = 97
	var str string
	// 十進制int
	str = strconv.FormatInt(int64(i), 10)
	fmt.Printf("str類型為%T,str=%v\n", str, str)
	//十六進制int
	str = strconv.FormatInt(int64(x), 16)
	fmt.Printf("str類型為%T,str=%v\n", str, str)
	//浮點型,f表示格式,3表示位數,64表示轉換成float64
	str = strconv.FormatFloat(float64(f), 'f', 3, 64)
	fmt.Printf("str類型為%T,str=%v\n", str, str)
	//布爾類型
	str = strconv.FormatBool(t)
	fmt.Printf("str類型為%T,str=%v\n", str, str)
	//string函數和strconv.itoa區別
	var str1 = strconv.Itoa(z)
	var str2 = string(z)
	fmt.Printf("str1類型為%T,str1=%v\n", str1, str1)
	fmt.Printf("str2類型為%T,str2=%v\n", str2, str2)
}

執行結果

str類型為string,str=10                          
str類型為string,str=3e7                         
str類型為string,str=1.800                       
str類型為string,str=false                       
str1類型為string,str1=97                        
str2類型為string,str2=a

注意

1、FormatInt參數可以選擇10進制或者16進制。

2、FormatFloat參數可以選擇保留幾位小數。

3、Itoa方法可以將int轉為string,但是string方法會把數字轉換為ASCII碼值等于該整型數字的字符。

5、字符串轉為基礎類型

使用strconv可以將字符串轉化為基礎類型。

樣例代碼如下

//字符串轉為基礎類型
func test_string_convert() {
	var str string = "true"
	b, _ := strconv.ParseBool(str)
	fmt.Printf("b類型為%T,b=%v\n", b, b)
 
	str = "111"
	// 默認返回int64
	i, _ := strconv.ParseInt(str, 10, 64)
	fmt.Printf("i類型為%T,i=%v\n", i, i)
 
	str = "1.908"
	f, _ := strconv.ParseFloat(str, 64)
	fmt.Printf("f類型為%T,f=%v\n", f, f)
 
	str = "abc"
	c, c1 := strconv.ParseInt(str, 10, 64)
	fmt.Printf("c類型為%T,c=%v\n", c, c)
	fmt.Printf("c1類型為%T,c1=%v\n", c1, c1)
}

執行結果

b類型為bool,b=true                              
i類型為int64,i=111                              
f類型為float64,f=1.908
c類型為int64,c=0
c1類型為*strconv.NumError,c1=strconv.ParseInt: parsing "abc": invalid syntax   

注意

1、":="等于聲明變量加賦值。

2、ParseInt返回的int類型為int64,ParseFloat返回的float類型為float64。

3、返回的值有兩個,如果解析失敗,則范圍該數據類型的初始化值,比如:int類型返回0。第二個值為異常,如果沒有異常則為空。

以上就是關于“Go語言中的數據類型有哪些及類型間怎么轉換”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德昌县| 伊吾县| 卢氏县| 都江堰市| 察隅县| 潜山县| 沾化县| 宜都市| 遂平县| 葫芦岛市| 杭锦后旗| 克什克腾旗| 丰镇市| 黄平县| 凌云县| 万年县| 余干县| 谷城县| 且末县| 尚志市| 三原县| 长春市| 连江县| 大埔区| 昌吉市| 德格县| 甘德县| 噶尔县| 平塘县| 儋州市| 崇义县| 霍州市| 阿坝| 高雄市| 慈利县| 巩义市| 成武县| 汾西县| 德格县| 龙州县| 和林格尔县|