27 Go語言標準庫之strconv

2021-10-11 16:15:47 字數 3865 閱讀 7040

go語言中strconv包實現了基本資料型別和其字串表示的相互轉換。

更多函式請檢視官方文件。

這一組函式是平時程式設計中用的最多的。

atoi()函式用於將字串型別的整數轉換為int型別,函式簽名如下:

func

atoi

(s string

)(i int

, err error

)

如果傳入的字串引數無法轉換為int型別,就會返回錯誤。

s1 :=

"200"

i1, err := strconv.

atoi

(s1)

if err !=

nilelse

itoa()函式用於將int型別資料轉換為對應的字串表示,具體的函式簽名如下:

func

itoa

(i int

)string

例如:

i2 :=

100s2 := strconv.

itoa

(i2)

fmt.

printf

("type:%t value:%#v\n"

, s2, s2)

//type:string value:"100"

【擴充套件閱讀】這是c語言遺留下的典故。c語言中沒有string型別而是用字元陣列(array)表示字串,所以itoa對很多c系的程式設計師很好理解。

parse類函式用於轉換字串為給定型別的值:parsebool()、parsefloat()、parseint()、parseuint()。

func

parsebool

(str string

)(value bool

, err error

)

返回字串表示的bool值。它接受1、0、t、f、t、f、true、false、true、false、true、false;否則返回錯誤。

func

parseint

(s string

, base int

, bitsize int

)(i int64

, err error

)

返回字串表示的整數值,接受正負號。

base指定進製(2到36),如果base為0,則會從字串前置判斷,」0x」是16進製制,」0」是8進製,否則是10進製;

bitsize指定結果必須能無溢位賦值的整數型別,0、8、16、32、64 分別代表 int、int8、int16、int32、int64;

返回的err是*numerr型別的,如果語法有誤,err.error = errsyntax;如果結果超出型別範圍err.error = errrange。

func

parseuint

(s string

, base int

, bitsize int

)(n uint64

, err error

)

parseuint類似parseint但不接受正負號,用於無符號整型。

func

parsefloat

(s string

, bitsize int

)(f float64

, err error

)

解析乙個表示浮點數的字串並返回其值。

如果s合乎語法規則,函式會返回最為接近s表示值的乙個浮點數(使用ieee754規範捨入)。

bitsize指定了期望的接收型別,32是float32(返回值可以不改變精確值的賦值給float32),64是float64;

返回值err是*numerr型別的,語法有誤的,err.error=errsyntax;結果超出表示範圍的,返回值f為±inf,err.error= errrange。

b, err := strconv.

parsebool

("true"

)f, err := strconv.

parsefloat

("3.1415",64

)i, err := strconv.

parseint

("-2",10

,64)u, err := strconv.

parseuint

("2",10

,64)

這些函式都有兩個返回值,第乙個返回值是轉換後的值,第二個返回值為轉化失敗的錯誤資訊。

format系列函式實現了將給定型別資料格式化為string型別資料的功能。

func

formatbool

(b bool

)string

根據b的值返回」true」或」false」。

func

formatint

(i int64

, base int

)string

返回 i 的base進製的字串表示。base 必須在2到36之間,結果中會使用小寫字母』a』到』z』表示大於10的數字。

func

formatuint

(i uint64

, base int

)string

是formatint的無符號整數版本。

func

formatfloat

(f float64

, fmt byte

, prec, bitsize int

)string

函式將浮點數表示為字串並返回。

fmt表示格式:』f』(-ddd.dddd)、』b』(-ddddp±ddd,指數為二進位制)、』e』(-d.dddde±dd,十進位制指數)、』e』(-d.dddde±dd,十進位制指數)、』g』(指數很大時用』e』格式,否則』f』格式)、』g』(指數很大時用』e』格式,否則』f』格式)。

prec控制精度(排除指數部分):對』f』、』e』、』e』,它表示小數點後的數字個數;對』g』、』g』,它控制總的數字個數。如果prec 為-1,則代表使用最少數量的、但又必需的數字來表示f。

s1 := strconv.

formatbool

(true

)s2 := strconv.

formatfloat

(3.1415

,'e',-

1,64)

s3 := strconv.

formatint(-

2,16)

s4 := strconv.

formatuint(2

,16)

func

isprint

(r rune

)bool

返回乙個字元是否是可列印的,和unicode.isprint一樣,r必須是:字母(廣義)、數字、標點、符號、ascii空格。

func

canbackquote

(s string

)bool

返回字串s是否可以不被修改的表示為乙個單行的、沒有空格和tab之外控制字元的反引號字串。

返回主目錄

說明:文章參考於李文周老師筆記(看詳細內容請檢視源筆記)

Go語言標準庫之flag

go語言內建的flag包實現了命令列引數的解析,flag包使得開發命令列工具更為簡單。如果你只是簡單的想要獲取命令列引數,可以像下面的 示例一樣使用os.args來獲取命令列引數。package main import fmt os os.args demo func main 將上面的 執行go ...

Go語言標準庫之strconv

go語言中strconv包實現了基本資料型別和其字串表示的相互轉換。更多函式請檢視官方文件。這一組函式是我們平時程式設計中用的最多的。將字串型別的整數轉換為int型別。func atoi s string i int,err error 如果傳入的字串引數無法轉換為int型別,就會返回錯誤。s1 1...

Go語言標準庫之regexp

regexp是go支援正規表示式的相關內建模組。一 引入 import regexp 二 使用 2.1 regexp.matchstring 使用正規表示式匹配字串 match,regexp.matchstring h hello world fmt.println match true 2.2 r...