Golang 資料型別轉換

2021-10-06 11:20:34 字數 4329 閱讀 2915

目錄

一、強制型別轉換

二、 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 包。

函式原型: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

golang 資料型別之間的轉換

一 基本資料型別之間的轉換 1 string到int int,err strconv.atoi string 2 string到int64 int64,err strconv.parseint string,10,64 3 int到string string strconv.itoa int 4 i...

Golang 資料型別

注釋 行注釋 塊注釋 識別符號 除了數字開頭的不允許,符號開頭的不允許,關鍵字不允許,其他的unicode字元組合都可以。33 也可以是識別符號,我們 也可以是識別符號。識別符號也區分大小寫。以大寫字母開頭的識別符號是公開的。其他任何識別符號都是私有的。空識別符號 是乙個佔位符,用於賦值操作的時候,...

Golang資料型別

二 布林型 三 字串 數字 字串和布林型。布林型的值只可以是常量 true 或者 false。數字型別支援整型和浮點型,並且支援複數,其中位的運算採用補碼。復合資料型別包括 陣列 結構體是通過組合簡單型別,來表達更加複雜的資料結構。引用型別包括 指標 slice map channel 介面和函式型...