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...