最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GoLang中Strconv庫(kù)有哪些常用方法

 更新時(shí)間:2023年01月12日 09:18:00   作者:Ch3n  
這篇文章主要介紹了GoLang中Strconv庫(kù)有哪些常用方法,strconv庫(kù)實(shí)現(xiàn)了基本數(shù)據(jù)類(lèi)型與其字符串表示的轉(zhuǎn)換,主要有以下常用函數(shù):?Atoi()、Itia()、parse系列、format系列、append系列

Strconv

strconv包實(shí)現(xiàn)了基本數(shù)據(jù)類(lèi)型和其字符串表示的相互轉(zhuǎn)換。

更多函數(shù)請(qǐng)查看

string與int類(lèi)型轉(zhuǎn)換

Atoi()

Atoi()函數(shù)用于將字符串類(lèi)型的整數(shù)轉(zhuǎn)換為int類(lèi)型,等價(jià)于ParseInt (s, 10, 0),轉(zhuǎn)換為 int 類(lèi)型。

func Atoi(s string) (i int, err error)
v := "10"
if s, err := strconv.Atoi(v); err == nil {
	fmt.Printf("%T, %v", s, s)
}
//Output:
//
//int, 10

Itoa()

Itoa()函數(shù)用于將int類(lèi)型數(shù)據(jù)轉(zhuǎn)換為對(duì)應(yīng)的字符串表示,等價(jià)于FormatInt (int64(i), 10)。

func Itoa(i int) string

例子

i := 10
s := strconv.Itoa(i)
fmt.Printf("%T, %v\n", s, s)
//Output:
//
//string, 10

Parse 系列函數(shù)

Parse類(lèi)函數(shù)用于轉(zhuǎn)換字符串為給定類(lèi)型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()

ParseBool

func ParseBool(str string) (value bool, err error)

ParseBool 返回字符串表示的布爾值。它接受 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False。任何其他值都會(huì)返回錯(cuò)誤。

例子

v := "true"
if s, err := strconv.ParseBool(v); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
//Output:
//
//bool, true

ParseInt

func ParseInt(s string, base int, bitSize int) (i int64, err error)

ParseInt 以給定的基數(shù)(0、2 到 36)和位大?。? 到 64)解釋字符串 s,并返回相應(yīng)的值 i。

字符串可以以前導(dǎo)符號(hào)開(kāi)頭:“+”或“-”。

如果 base 參數(shù)為 0,則真正的基數(shù)由符號(hào)后面的字符串前綴(如果存在)暗示:2 表示“0b”,8 表示“0”或“0o”,16 表示“0x”,否則為 10。此外,僅對(duì)于以 0 為基數(shù)的參數(shù),允許使用 Go 語(yǔ)法為整數(shù)文字定義的下劃線字符。

bitSize 參數(shù)指定結(jié)果必須適合的整數(shù)類(lèi)型。位大小 0、8、16、32 和 64 對(duì)應(yīng)于 int、int8、int16、int32 和 int64。如果 bitSize 小于 0 或大于 64,則返回錯(cuò)誤。

ParseInt 返回的錯(cuò)誤具有具體類(lèi)型 * NumError并包括 err.Num = s。如果 s 為空或包含無(wú)效數(shù)字,則 err.Err = ErrSyntax ,返回值為 0;如果 s 對(duì)應(yīng)的值不能用給定大小的有符號(hào)整數(shù)表示,則 err.Err = ErrRange并且返回值是適當(dāng)?shù)?bitSize 和符號(hào)的最大幅度整數(shù)

例子

v32 := "-354634382"
if s, err := strconv.ParseInt(v32, 10, 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseInt(v32, 16, 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
v64 := "-3546343826724305832"
if s, err := strconv.ParseInt(v64, 10, 64); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseInt(v64, 16, 64); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
//Output:
//
//int64, -354634382
//int64, -3546343826724305832

ParseUnit

func ParseUint(s string, base int, bitSize int) (n uint64, err error)

ParseUint 類(lèi)似于ParseInt但用于無(wú)符號(hào)數(shù)。

不允許使用符號(hào)前綴

例子

v := "42"
if s, err := strconv.ParseUint(v, 10, 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseUint(v, 10, 64); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
//Output:
//
//uint64, 42
//uint64, 42

ParseFloat

func ParseFloat(s string, bitSize int) (f float64, err error)

ParseFloat 將字符串 s 轉(zhuǎn)換為精度由 bitSize 指定的浮點(diǎn)數(shù):對(duì)于 float32 為 32,對(duì)于 float64 為 64。當(dāng) bitSize=32 時(shí),結(jié)果仍然是 float64 類(lèi)型,但它可以轉(zhuǎn)換為 float32 而不會(huì)改變它的值。

ParseFloat 接受十進(jìn)制和十六進(jìn)制浮點(diǎn)數(shù)語(yǔ)法。如果 s 格式正確且接近有效浮點(diǎn)數(shù),則 ParseFloat 返回使用 IEEE754 無(wú)偏舍入舍入的最接近的浮點(diǎn)數(shù)。 (僅當(dāng)十六進(jìn)制表示中的位數(shù)多于尾數(shù)中的位數(shù)時(shí),才對(duì)十六進(jìn)制浮點(diǎn)值進(jìn)行四舍五入。)

ParseFloat 返回的錯(cuò)誤具有具體類(lèi)型 * NumError并包括 err.Num = s。

如果 s 的語(yǔ)法格式不正確,則 ParseFloat 返回 err.Err = ErrSyntax 。

如果 s 在語(yǔ)法上格式正確,但距離給定大小的最大浮點(diǎn)數(shù)超過(guò) 1/2 ULP,則 ParseFloat 返回 f = ±Inf, err.Err = ErrRange 。

ParseFloat 將字符串“NaN”和(可能有符號(hào)的)字符串“Inf”和“Infinity”識(shí)別為它們各自的特殊浮點(diǎn)值。匹配時(shí)忽略大小寫(xiě)

例子

v := "3.1415926535"
if s, err := strconv.ParseFloat(v, 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseFloat(v, 64); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseFloat("NaN", 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
// ParseFloat is case insensitive
if s, err := strconv.ParseFloat("nan", 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseFloat("inf", 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseFloat("+Inf", 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseFloat("-Inf", 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseFloat("-0", 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
if s, err := strconv.ParseFloat("+0", 32); err == nil {
	fmt.Printf("%T, %v\n", s, s)
}
//Output:
//
//float64, 3.1415927410125732
//float64, 3.1415926535
//float64, NaN
//float64, NaN
//float64, +Inf
//float64, +Inf
//float64, -Inf
//float64, -0
//float64, 0

Format系列函數(shù)

Format系列函數(shù)實(shí)現(xiàn)了將給定類(lèi)型數(shù)據(jù)格式化為string類(lèi)型數(shù)據(jù)的功能。

FormatBool

func FormatBool(b bool) string

FormatBool 根據(jù) b 的值返回“true”或“false”。

例子

v := true
s := strconv.FormatBool(v)
fmt.Printf("%T, %v\n", s, s)
//Output:
//
//string, true

FormatInt

func FormatInt(i int64, base int) string

FormatInt 返回給定基數(shù)中 i 的字符串表示形式,即 2 <= base <= 36。對(duì)于 >= 10 的數(shù)字值,結(jié)果使用小寫(xiě)字母 ‘a’ 到 ‘z’。

例子

v := int64(-42)
s10 := strconv.FormatInt(v, 10)
fmt.Printf("%T, %v\n", s10, s10)
s16 := strconv.FormatInt(v, 16)
fmt.Printf("%T, %v\n", s16, s16)
//Output:
//
//string, -42
//string, -2a

FormatUint

func FormatUint(i uint64, base int) string

FormatUint 返回給定基數(shù)中 i 的字符串表示形式,即 2 <= base <= 36。對(duì)于 >= 10 的數(shù)字值,結(jié)果使用小寫(xiě)字母 ‘a’ 到 ‘z’

例子

v := uint64(42)
s10 := strconv.FormatUint(v, 10)
fmt.Printf("%T, %v\n", s10, s10)
s16 := strconv.FormatUint(v, 16)
fmt.Printf("%T, %v\n", s16, s16)
//Output:
//
//string, 42
//string, 2a

FormatFloat

func FormatFloat(f float64, fmt byte, prec, bitSize int) string

FormatFloat 根據(jù)格式 fmt 和精度 prec 將浮點(diǎn)數(shù) f 轉(zhuǎn)換為字符串。

假設(shè)原始值是從 bitSize 位的浮點(diǎn)值(32 表示 float32,64 表示 float64)獲得的,它會(huì)對(duì)結(jié)果進(jìn)行四舍五入。 格式 fmt 是 ‘b’(-ddddp±ddd,二進(jìn)制指數(shù))、‘e’(-d.dddde±dd,十進(jìn)制指數(shù))、‘E’(-d.ddddE±dd,十進(jìn)制指數(shù))之一), ‘f’ (-ddd.dddd, 無(wú)指數(shù)), ‘g’ (‘e’ 表示大指數(shù),‘f’ 否則), ‘G’ (‘E’ 表示大指數(shù),‘f’ 否則), ’ x’(-0xd.ddddp±ddd,十六進(jìn)制分?jǐn)?shù)和二進(jìn)制指數(shù)),或 ‘X’(-0Xd.ddddP±ddd,十六進(jìn)制分?jǐn)?shù)和二進(jìn)制指數(shù))。 精度 prec 控制由“e”、“E”、“f”、“g”、“G”、“x”和“X”格式打印的位數(shù)(不包括指數(shù))。對(duì)于’e’、‘E’、‘f’、‘x’和’X’,它是小數(shù)點(diǎn)后的位數(shù)。對(duì)于“g”和“G”,它是有效數(shù)字的最大數(shù)量(刪除尾隨零)。 特殊精度 -1 使用所需的最少位數(shù),以便ParseFloat將準(zhǔn)確返回 f

例子

v := 3.1415926535
s32 := strconv.FormatFloat(v, 'E', -1, 32)
fmt.Printf("%T, %v\n", s32, s32)
s64 := strconv.FormatFloat(v, 'E', -1, 64)
fmt.Printf("%T, %v\n", s64, s64)
//Output:
//
//string, 3.1415927E+00
//string, 3.1415926535E+00

其他

isPrint

func IsPrint(r rune) bool

返回一個(gè)字符是否是可打印的,和unicode.IsPrint一樣,r必須是:字母(廣義)、數(shù)字、標(biāo)點(diǎn)、符號(hào)、ASCII空格。

CanBackquote

func CanBackquote(s string) bool

返回字符串s是否可以不被修改的表示為一個(gè)單行的、沒(méi)有空格和tab之外控制字符的反引號(hào)字符串。

除上文列出的函數(shù)外,strconv包中還有Append系列、Quote系列等函數(shù)。具體用法可查看官方文檔。

到此這篇關(guān)于GoLang中Strconv庫(kù)有哪些常用方法的文章就介紹到這了,更多相關(guān)Go Strconv庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Go進(jìn)行單元測(cè)試的實(shí)現(xiàn)

    使用Go進(jìn)行單元測(cè)試的實(shí)現(xiàn)

    這篇文章主要介紹了使用Go進(jìn)行單元測(cè)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 詳解Go語(yǔ)言中的iface和eface

    詳解Go語(yǔ)言中的iface和eface

    Go 是 Google 開(kāi)發(fā)的一種編譯型、并發(fā)型,并具有垃圾回收功能的編程語(yǔ)言,這篇文章主要介紹了Go語(yǔ)言中的iface和eface,需要的朋友可以參考下
    2023-07-07
  • Go利用ffmpeg進(jìn)行視頻和音頻處理

    Go利用ffmpeg進(jìn)行視頻和音頻處理

    ffmpeg 是一款功能強(qiáng)大的多媒體處理工具,支持視頻和音頻的編碼、解碼、轉(zhuǎn)碼,以及幀提取和流處理等功能,下面我們就來(lái)看看Go如何利用ffmpeg進(jìn)行視頻和音頻處理吧
    2024-12-12
  • 從Context到go設(shè)計(jì)理念輕松上手教程

    從Context到go設(shè)計(jì)理念輕松上手教程

    這篇文章主要為大家介紹了從Context到go設(shè)計(jì)理念輕松上手教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 一文帶你揭秘Go中new()和make()函數(shù)的區(qū)別和用途

    一文帶你揭秘Go中new()和make()函數(shù)的區(qū)別和用途

    Go(或 Golang)是一種現(xiàn)代、靜態(tài)類(lèi)型、編譯型的編程語(yǔ)言,專為構(gòu)建可擴(kuò)展、并發(fā)和高效的軟件而設(shè)計(jì),它提供了各種內(nèi)置的函數(shù)和特性,幫助開(kāi)發(fā)人員編寫(xiě)簡(jiǎn)潔高效的代碼,在本博客文章中,我們將探討 new() 和 make() 函數(shù)之間的區(qū)別,了解何時(shí)以及如何有效地使用它們
    2023-10-10
  • go語(yǔ)言執(zhí)行等待直到后臺(tái)goroutine執(zhí)行完成實(shí)例分析

    go語(yǔ)言執(zhí)行等待直到后臺(tái)goroutine執(zhí)行完成實(shí)例分析

    這篇文章主要介紹了go語(yǔ)言執(zhí)行等待直到后臺(tái)goroutine執(zhí)行完成的方法,實(shí)例分析了Go語(yǔ)言中WaitGroup的使用技巧,需要的朋友可以參考下
    2015-03-03
  • Go Slice擴(kuò)容的這些坑你踩過(guò)哪些

    Go Slice擴(kuò)容的這些坑你踩過(guò)哪些

    這篇文章主要為大家詳細(xì)介紹了Golang中對(duì)切片Slice的append操作時(shí)會(huì)遇到的踩坑經(jīng)驗(yàn)分享,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03
  • Go pprof內(nèi)存指標(biāo)含義備忘錄及案例分析

    Go pprof內(nèi)存指標(biāo)含義備忘錄及案例分析

    這篇文章主要介紹了Go pprof內(nèi)存指標(biāo)含義備忘錄問(wèn)題,小編特此把問(wèn)題及案例分享到腳本之家平臺(tái)供大家學(xué)習(xí),需要的朋友可以參考下
    2020-03-03
  • 詳解Go語(yǔ)言實(shí)現(xiàn)線性查找算法和二分查找算法

    詳解Go語(yǔ)言實(shí)現(xiàn)線性查找算法和二分查找算法

    線性查找又稱順序查找,它是查找算法中最簡(jiǎn)單的一種。二分查找,也稱折半查找,相比于線性查找,它是一種效率較高的算法。本文將用Go語(yǔ)言實(shí)現(xiàn)這兩個(gè)查找算法,需要的可以了解一下
    2022-12-12
  • 深入探討Go語(yǔ)言中的map是否是并發(fā)安全以及解決方法

    深入探討Go語(yǔ)言中的map是否是并發(fā)安全以及解決方法

    這篇文章主要來(lái)和大家探討?Go?語(yǔ)言中的?map?是否是并發(fā)安全的,并提供三種方案來(lái)解決并發(fā)問(wèn)題,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2023-05-05

最新評(píng)論

涿鹿县| 嵊州市| 蓝山县| 芒康县| 康保县| 禹州市| 壤塘县| 庆城县| 绥中县| 开平市| 胶州市| 白朗县| 福海县| 江安县| 彝良县| 西安市| 历史| 深圳市| 稻城县| 荥阳市| 潼南县| 涟源市| 贵定县| 锡林郭勒盟| 湘西| 临漳县| 当阳市| 迭部县| 黄平县| 乌兰浩特市| 襄樊市| 澄江县| 房产| 密山市| 伊宁县| 鄂托克前旗| 徐州市| 博罗县| 大同县| 仪征市| 元阳县|