go語言標準庫 - strconv

dawnchen發表於2019-04-12

一、目錄

二、簡介

該庫功能與字面意思一樣(string[字串]convert[轉換])。用於字串與各種基礎型別的相互轉換。
並封裝了一些跨型別拼接函式,以及轉義函式。

三、分類

1. 基礎型別 與 字串 互轉

FormatBool Bool轉字串
FormatFloat Float轉字串
FormatInt Int轉字串
FormatUint 無符號int轉字串
Itoa 64位10進位制轉字串,對FormatInt的封裝

ParseBool 字串轉Bool
ParseFloat 字串轉Float
ParseInt 字串轉Int
ParseUint 字串轉無符號Int
Atoi 字串轉64位10進位制整數

2. 轉義字串

Quote
QuoteRune
QuoteRuneToASCII
QuoteRuneToGraphic
QuoteToASCII
QuoteToGraphic
Unquote
UnquoteChar

3. 字串拼接其他基礎型別

AppendBool
AppendFloat
AppendInt
AppendQuote
AppendQuoteRune
AppendQuoteRuneToASCII
AppendQuoteRuneToGraphic
AppendQuoteToASCII
AppendQuoteToGraphic
AppendUint

4. 判斷字串屬性

IsGraphic
IsPrint
CanBackquote

5. 庫函式錯誤處理

Error

四、例項

1. 基礎型別 與 字串 互轉

package main

import (
	"fmt"
	"strconv"
)

func main() {
	// 基礎型別 轉 字串
	// Bool轉字串
	tmpStr := strconv.FormatBool(true)
	fmt.Printf("型別%T, 值%v\n", tmpStr, tmpStr)
	// Int轉字串
	tmpStr = strconv.FormatInt(323, 10)
	fmt.Printf("型別%T, 值%v\n", tmpStr, tmpStr)
	// Int轉字串
	tmpStr = strconv.Itoa(320)
	fmt.Printf("型別%T, 值%v\n", tmpStr, tmpStr)

	// 字串 轉 基礎型別
	// 字串轉Bool
	if tmpBool, err := strconv.ParseBool(`false`); nil != err {
		fmt.Println(err)
	} else {
		fmt.Printf("型別%T, 值%v\n", tmpBool, tmpBool)
	}
}

複製程式碼

2. 轉義字串

package main

import (
	"fmt"
	"strconv"
)

func main() {
	s := strconv.Quote(`"Fran & Freddie's Diner	☺"`) // there is a tab character inside the string literal
	fmt.Println(s)

}
複製程式碼

3. 字串拼接其他基礎型別

package main

import (
	"fmt"
	"strconv"
)

func main() {
	b := []byte("bool:")
	b = strconv.AppendBool(b, true)
	fmt.Println(string(b))

}
複製程式碼

4. 判斷字串屬性

package main

import (
	"fmt"
	"strconv"
)

func main() {
	shamrock := strconv.IsGraphic('☘')
	fmt.Println(shamrock)

	a := strconv.IsGraphic('a')
	fmt.Println(a)

	bel := strconv.IsGraphic('\007')
	fmt.Println(bel)

}
複製程式碼

5. 庫函式錯誤處理

package main

import (
	"fmt"
	"strconv"
)

func main() {
	str := "Not a number"
	if _, err := strconv.ParseFloat(str, 64); err != nil {
		e := err.(*strconv.NumError)
		fmt.Println("Func:", e.Func)
		fmt.Println("Num:", e.Num)
		fmt.Println("Err:", e.Err)
		fmt.Println(err)
	}

}
複製程式碼

相關文章