Go語言內建包之strconv

2022-09-15 13:48:24 字數 3347 閱讀 5637

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

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

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

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

func atoi(s string) (i int, err error)
如果傳入的字串引數無法轉換為int型別,就會返回錯誤。

s1 := "100"

i1, err := strconv.atoi(s1)

if err != nil else

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

func itoa(i int) string
示例**如下:

i2 := 200

s2 := strconv.itoa(i2)

fmt.printf("type:%t value:%#v\n", s2, s2) //type:string value:"200"

【擴充套件閱讀】這是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語言中的strconv包

在go語言中經常用到字串和其它型別進行轉換,strconv包能實現這個功能。有兩種方法,可以使用func atoi s string i int,err error atoi代表ascii to integer。還可以使用func parseint s string,base int,bitsize...

Go語言標準庫之strconv

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

Go語言標準庫之strconv

目錄三 parse系列函式 四 format系列函式 五 其他 go 從入門到放棄完整教程目錄 更有python go pytorch tensorflow 爬蟲 人工智慧教學等著你 更新 更全的 go從入門到放棄 的更新 更有python go 人工智慧教學等著你 go語言中strconv包實現了...