您好,登錄后才能下訂單哦!
strconv包實現額基本數據類型與其字符串表示的轉換,主要有以下常用函數,Atoi()、Itia()、parse系列、format系列、append系列。
這一組函數是我們平時用的最多的。
Atio()函數用于將字符串類型的整數轉換為int類型,函數簽名如下:
func Atoi(s string) (i int, err error)
如果傳入的字符串參數無法轉換為int類型,就會報錯。
package main
import (
"strconv"
"fmt"
)
func main(){
s1 := "100"
i1, err := strconv.Atoi(s1)
if err != nil{
fmt.Println("can't convert to int")
}else{
fmt.Printf("type:%T value:%#v\t",i1, i1)
}
}
Itoa()函數用于將int類型的數據轉換為對應的字符串表示,具體函數簽名如下:
func Itoa(i int) string
示例代碼如下:
package main
import (
"strconv"
"fmt"
)
func main(){
// s1 := "100"
// i1, err := strconv.Atoi(s1)
// if err != nil{
// fmt.Println("can't convert to int")
// }else{
// fmt.Printf("type:%T value:%#v\t",i1, i1)
// }
i2 := 100
s2 := strconv.Itoa(i2)
if err != nil{
fmt.Printf("type:%T value:%#v\n",s2,s2)
}
}
parse系列函數
Parse類函數用于轉換字符串為給定類型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUnit()。
ParseFloat()
func ParseFloat(s string, bitSize int) (f float64,err error)
解析一個表示浮點數的字符串并返回其值。
ParseBool()
func ParseBool(str string) (value bool,err error)
返回字符串表示的bool值。它接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE;否則返回錯誤。
ParseInt()
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。
package main
import (
"strconv"
"fmt"
)
func main(){
b , err := strconv.ParseBool("true")
if err != nil{
panic(err)
}
fmt.Println(b)
f ,err := strconv.ParseFloat("3.1415",64)
if err != nil{
panic(err)
}
fmt.Println(f)
u ,err := strconv.ParseUnit("2",10,64)
if err != nil{
panic(err)
}
fmt.Println(u)
}
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 FormatUnit(i int64, base int)
是FormatInt的無符號整數版本。
func FormatFloat(f float64, fmt byte, prec,bitsize int) string
函數將浮點數表示為字符串并返回。
s1 := strconv.FormatBool(true)
s2 := strconv.FormatFloat(3.1415,'E',-1,64)
s3 := strconv.FormatInt(-2,16)
// s4 := strconv.FormatUnit(2,16)
fmt.Println(s1,s2,s3)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。