轉(zhuǎn)換方法:1、利用strconv包中的Atoi()函數(shù),可將字符串類型的整數(shù)轉(zhuǎn)換為int類型,語法“strconv.Atoi(string)”;2、利用strconv包中的ParseInt()函數(shù),可返回字符串表示的整數(shù)值(接受正負(fù)號),語法“strconv.ParseInt(string,10,64)”。
本教程操作環(huán)境:windows10系統(tǒng)、GO 1.18、thinkpad t480電腦。
golang中字符串和各種int類型之間的相互轉(zhuǎn)換方式
string轉(zhuǎn)成int:
int, err := strconv.Atoi(string)
string轉(zhuǎn)成int64:
立即學(xué)習(xí)“go語言免費(fèi)學(xué)習(xí)筆記(深入)”;
int64, err := strconv.ParseInt(string, 10, 64)
int轉(zhuǎn)成string:
string := strconv.Itoa(int)
int64轉(zhuǎn)成string:
string := strconv.FormatInt(int64,10)
Go語言 strconv(類型轉(zhuǎn)換)介紹
Go語言中strconv包實(shí)現(xiàn)了基本數(shù)據(jù)類型和其字符串表示的相互轉(zhuǎn)換。
strconv包
strconv包實(shí)現(xiàn)了基本數(shù)據(jù)類型與其字符串表示的轉(zhuǎn)換,主要有以下常用函數(shù):?Atoi()、Itia()、parse系列、format系列、append系列。
更多函數(shù)請查看官方文檔。
string與int類型轉(zhuǎn)換
這一組函數(shù)是我們平時(shí)編程中用的最多的。
Atoi()
Atoi()函數(shù)用于將字符串類型的整數(shù)轉(zhuǎn)換為int類型,函數(shù)簽名如下。
func Atoi(s string) (i int, err error)
如果傳入的字符串參數(shù)無法轉(zhuǎn)換為int類型,就會(huì)返回錯(cuò)誤。
s1 := "100" i1, err := strconv.Atoi(s1) if err != nil { fmt.Println("can't convert to int") } else { fmt.Printf("type:%T value:%#v\n", i1, i1) //type:int value:100 }
Itoa()
Itoa()函數(shù)用于將int類型數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的字符串表示,具體的函數(shù)簽名如下。
func Itoa(i int) string
示例代碼如下:
i2 := 200s2 := strconv.Itoa(i2)fmt.Printf("type:%T value:%#v\n", s2, s2) //type:string value:"200"
Parse系列函數(shù)
Parse類函數(shù)用于轉(zhuǎn)換字符串為給定類型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。
ParseBool()
func ParseBool(str string) (value bool, err error)
返回字符串表示的bool值。它接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE;否則返回錯(cuò)誤。
ParseInt()
func ParseInt(s string, base int, bitSize int) (i int64, err error)
返回字符串表示的整數(shù)值,接受正負(fù)號。
base指定進(jìn)制(2到36),如果base為0,則會(huì)從字符串前置判斷,”0x”是16進(jìn)制,”0”是8進(jìn)制,否則是10進(jìn)制;
bitSize指定結(jié)果必須能無溢出賦值的整數(shù)類型,0、8、16、32、64 分別代表 int、int8、int16、int32、int64;
返回的err是*NumErr類型的,如果語法有誤,err.Error = ErrSyntax;如果結(jié)果超出類型范圍err.Error = ErrRange。
ParseUnit()
func ParseUint(s string, base int, bitSize int) (n uint64, err error)
ParseUint類似ParseInt但不接受正負(fù)號,用于無符號整型。
ParseFloat()
func ParseFloat(s string, bitSize int) (f float64, err error)
解析一個(gè)表示浮點(diǎn)數(shù)的字符串并返回其值。
如果s合乎語法規(guī)則,函數(shù)會(huì)返回最為接近s表示值的一個(gè)浮點(diǎn)數(shù)(使用IEEE754規(guī)范舍入)。
bitSize指定了期望的接收類型,32是float32(返回值可以不改變精確值的賦值給float32),64是float64;
返回值err是*NumErr類型的,語法有誤的,err.Error=ErrSyntax;結(jié)果超出表示范圍的,返回值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)
這些函數(shù)都有兩個(gè)返回值,第一個(gè)返回值是轉(zhuǎn)換后的值,第二個(gè)返回值為轉(zhuǎn)化失敗的錯(cuò)誤信息。
Format系列函數(shù)
Format系列函數(shù)實(shí)現(xiàn)了將給定類型數(shù)據(jù)格式化為string類型數(shù)據(jù)的功能。
FormatBool()
func FormatBool(b bool) string
根據(jù)b的值返回”true”或”false”。
FormatInt()
func FormatInt(i int64, base int) string
返回i的base進(jìn)制的字符串表示。base 必須在2到36之間,結(jié)果中會(huì)使用小寫字母’a’到’z’表示大于10的數(shù)字。
FormatUint()
func FormatUint(i uint64, base int) string
是FormatInt的無符號整數(shù)版本。
FormatFloat()
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
函數(shù)將浮點(diǎn)數(shù)表示為字符串并返回。
bitSize表示f的來源類型(32:float32、64:float64),會(huì)據(jù)此進(jìn)行舍入。
fmt表示格式:’f’(-ddd.dddd)、’b’(-ddddp±ddd,指數(shù)為二進(jìn)制)、’e’(-d.dddde±dd,十進(jìn)制指數(shù))、’E’(-d.ddddE±dd,十進(jìn)制指數(shù))、’g’(指數(shù)很大時(shí)用’e’格式,否則’f’格式)、’G’(指數(shù)很大時(shí)用’E’格式,否則’f’格式)。
prec控制精度(排除指數(shù)部分):對’f’、’e’、’E’,它表示小數(shù)點(diǎn)后的數(shù)字個(gè)數(shù);對’g’、’G’,它控制總的數(shù)字個(gè)數(shù)。如果prec 為-1,則代表使用最少數(shù)量的、但又必需的數(shù)字來表示f。
代碼示例
s1 := strconv.FormatBool(true) s2 := strconv.FormatFloat(3.1415, 'E', -1, 64) s3 := strconv.FormatInt(-2, 16) s4 := strconv.FormatUint(2, 16)
其他
isPrint()
func IsPrint(r rune) bool
返回一個(gè)字符是否是可打印的,和unicode.IsPrint一樣,r必須是:字母(廣義)、數(shù)字、標(biāo)點(diǎn)、符號、ASCII空格。
CanBackquote()
func CanBackquote(s string) bool
返回字符串s是否可以不被修改的表示為一個(gè)單行的、沒有空格和tab之外控制字符的反引號字符串。
其他
除上文列出的函數(shù)外,strconv包中還有Append系列、Quote系列等函數(shù)。具體用法可查看官方文檔。
推薦學(xué)習(xí):Golang教程
以上就是go語言怎么將string轉(zhuǎn)int類型的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個(gè)人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號