Golang學習筆記(三) 資料型別轉換

2021-10-06 10:11:38 字數 4493 閱讀 9370

目錄

一、強制型別轉換

二、 strconv包:字串和數值型別的相互轉換

1. itoa():整型轉字串  integer to alphanumeric

2. atoi():字串轉整型 alphanumeric to integer

3. parse 系列函式(str轉其他): parsebool()、parseint()、parseuint()、parsefloat()

4.format 系列函式(其他轉str): formatbool()、formatint()、formatuint()、formatfloat()

類似於其他語言,go語言也支援強制型別轉換:

但是只有相同底層型別的變數之間可以進行相互轉換(如將 int16 和 int32 相互轉換,float 型別和 int 型別相互轉換),不同底層型別的變數相互轉換時會引發編譯錯誤(如 bool 型別和 int 型別,string 與 int 型別之間的轉換): 

如果需要string、int、int64、float 等資料型別之間的轉換功能,可以使用標準包中的 strconv 包。

strconv 包中常用的函式包括atoi()itia()parse系列函式、format系列函式等。

函式原型:func itoa(i int) string    輸入int,輸出string

package main

import (

"fmt"

"strconv"

)func main()

//輸出:

//type:string value:"100"

函式原型:func atoi(s string) (i int, err error)輸入string,輸出int 和 錯誤資訊

package main

import (

"fmt"

"strconv"

)func main() else

num2, err := strconv.atoi(str2)

if err != nil else

}//輸出:

//type:int value:110

//s100 轉換失敗!

(1)parsebool()它只能接受 1、0、t、f、t、f、true、false、true、false、true、false,其它的值均返回錯誤。

函式原型:func parsebool(str string) (value bool, err error)

package main

import (

"fmt"

"strconv"

)func main() else

str2 := "t"

boo2, err := strconv.parsebool(str2)

if err != nil else

}//輸出:

//str1: strconv.parsebool: parsing "110": invalid syntax

//true

(2)parseint()函式用於返回字串表示的整數值(可以包含正負號)。函式原型:func parseint(s string, base int, bitsize int) (i int64, err error)

引數說明:

package main

import (

"fmt"

"strconv"

)func main() else

}//輸出:

//-11

(3)parseuint()函式用於返回字串表示的整數值,但 parseuint() 函式不接受正負號,用於無符號整型。函式原型:func parseuint(s string, base int, bitsize int) (n uint64, err error)

引數說明:(同parseint())

package main

import (

"fmt"

"strconv"

)func main() else

}//輸出:

//11

(4)parsefloat()函式用於將乙個表示浮點數的字串轉換為 float 型別。

函式原型:func parsefloat(s string, bitsize int) (f float64, err error)

引數說明:

package main

import (

"fmt"

"strconv"

)func main() else

}//輸出:

(1)formatbool()函式可以將乙個 bool 型別的值轉換為對應的字串型別。

函式原型:func formatbool(b bool) string

package main

import (

"fmt"

"strconv"

)func main()

//輸出:

//type:string,value:true

(2)formatint()函式用於將整型資料轉換成指定進製並以字串的形式返回。

函式原型:func formatint(i int64, base int) string

引數說明:

package main

import (

"fmt"

"strconv"

)func main()

//輸出:

//type:string,value:64

(3)formatuint()函式用於將無符號的整型資料轉換成指定進製並以字串的形式返回。

函式原型:func formatuint(i uint64, base int) string

引數說明:

package main

import (

"fmt"

"strconv"

)func main()

//輸出:

//type:string,value:6e

(4)formatfloat

()函式用於將浮點數轉換為字串型別並以字串的形式返回。

函式原型:func formatfloat(f float64, fmt byte, prec, bitsize int) string

引數說明:

package main

import (

"fmt"

"strconv"

)func main()

//輸出:

//type:string,value:3.1415926e+00

函式原型:

func formatbool(slice string, b bool) string

func formatint(slice string, i int64, base int) sting

func formatuint(slice string, i uint64, base int)  string

func formatfloat(slice string, f float64, fmt byte, prec, bitsize int) string

package main

import (

"fmt"

"strconv"

)func main()

//輸出:

//int (base 10):-42

//int (base 16):-2a

go語言strconv包:字串和數值型別的相互轉換

Golang學習筆記 四 資料型別

go語言內建了豐富的資料型別,主要分為四類,基礎資料型別 復合資料型別,引用資料型別及介面資料型別,另外,在這些型別的基礎,也支援我們根據自己的資料型別,這就為我們編寫 提供很大的便利性。這一節,我們先學一下基礎資料型別中的整數型別。整數型別分兩種,有符號 int8,int16,int32,int6...

golang學習(二) 資料型別

個人github golang學習筆記 go語言基本的資料型別有整型 浮點型 布林型 字串 還有複雜資料型別如切片 結構體 函式 map 通道 指標 陣列 介面等。整型分為兩個大類 1.int8 int16 int32 int64 2.對應的無符號整型 uint8 uint16 uint32 uin...

GoLang學習之資料型別

go語言按類別有以下幾種資料型別 注意 golang中還有個rune型別,它等價於int32型別。golang是靜態型別的程式語言,所有資料的型別在編譯期確定了。而且 golang中即使是底層存的是乙個型別,宣告的型別不一樣,也要強制轉換才能互用。在go 語言裡面沒有隱式轉換,遇到不同型別想互用,只...