strconv es un paquete muy utilizado en Golang, principalmente para la conversión entre cadenas y tipos de datos básicos. Este artículo presentará las funciones comunes y el uso del paquete strconv en detalle.
strconv.Atoi y strconv.Itoa
La función Atoi se usa para convertir una cadena a un tipo int, y la función Itoa se usa para convertir un tipo int a un tipo de cadena. Un ejemplo de uso simple es el siguiente:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
intValue, _ := strconv.Atoi(str)
fmt.Printf("str to int: %d\n", intValue)
intValue += 1
str = strconv.Itoa(intValue)
fmt.Printf("int to str: %s\n", str)
}
Funciones de la serie strconv.Parse
La serie de funciones strconv.Parse se utiliza para analizar una cadena en un tipo específico. Entre las funciones más utilizadas se encuentran ParseInt, ParseBool y ParseFloat. Un ejemplo de uso simple es el siguiente:
package main
import (
"fmt"
"strconv"
)
func main() {
// 解析整数
intStr := "123"
intValue, _ := strconv.ParseInt(intStr, 10, 64)
fmt.Printf("Parsed int value: %d\n", intValue)
// 解析布尔值
boolStr := "true"
boolValue, _ := strconv.ParseBool(boolStr)
fmt.Printf("Parsed bool value: %t\n", boolValue)
// 解析浮点数
floatStr := "3.14"
floatValue, _ := strconv.ParseFloat(floatStr, 64)
fmt.Printf("Parsed float value: %f\n", floatValue)
}
strconv.Format serie de funciones
La serie de funciones strconv.Format se utiliza para convertir tipos de datos básicos en tipos de cadena. Las funciones comúnmente utilizadas son FormatInt, FormatBool y FormatFloat. Un ejemplo de uso simple es el siguiente:
package main
import (
"fmt"
"strconv"
)
func main() {
// 格式化整数
intValue := 123
intStr := strconv.FormatInt(int64(intValue), 10)
fmt.Printf("Formatted int string: %s\n", intStr)
// 格式化布尔值
boolValue := true
boolStr := strconv.FormatBool(boolValue)
fmt.Printf("Formatted bool string: %s\n", boolStr)
// 格式化浮点数
floatValue := 3.14
floatStr := strconv.FormatFloat(floatValue, 'f', -1, 64)
fmt.Printf("Formatted float string: %s\n", floatStr)
}
Funciones de la serie strconv.Append
La serie de funciones strconv.Append se utiliza para agregar tipos de datos básicos a una matriz de bytes existente. Las funciones comúnmente utilizadas son AppendInt, AppendBool y AppendFloat. Un ejemplo de uso simple es el siguiente:
package main
import (
"fmt"
"strconv"
)
func main() {
// 追加整数到字节数组
num1 := 123
byteSlice := []byte("Number: ")
byteSlice = strconv.AppendInt(byteSlice, int64(num1), 10)
fmt.Printf("Appended int: %s\n", byteSlice)
// 追加布尔值到字节数组
boolVal := true
byteSlice = []byte("Bool: ")
byteSlice = strconv.AppendBool(byteSlice, boolVal)
fmt.Printf("Appended bool: %s\n", byteSlice)
// 追加浮点数到字节数组
floatVal := 3.14
byteSlice = []byte("Float: ")
byteSlice = strconv.AppendFloat(byteSlice, floatVal, 'f', -1, 64)
fmt.Printf("Appended float: %s\n", byteSlice)
}
strconv.IsPrint o strconv.IsGraphic
La función strconv.IsPrint se usa para determinar si un carácter Unicode determinado es imprimible, y los caracteres imprimibles se refieren a aquellos caracteres que se pueden mostrar en la pantalla. La función strconv.IsGraphic se utiliza para determinar si un carácter Unicode dado es un carácter gráfico y un carácter gráfico se refiere a un carácter visual. Un ejemplo de uso simple es el siguiente:
package main
import (
"fmt"
"strconv"
)
func main() {
chars := []rune{'H', 'e', 'l', '\n', '♥', 127}
for _, char := range chars {
fmt.Printf("Character: %c, IsPrint: %v\n", char, strconv.IsPrint(char))
fmt.Printf("Character: %c, IsGraphic: %v\n", char, strconv.IsGraphic(char))
}
}
Funciones de serie strconv.Quote y strconv.Unquote
La serie de funciones strconv.Quote se utiliza para escapar y citar funciones de cadena, convirtiendo una cadena en un valor literal de cadena (literal) que se puede representar directamente, incluida la adición de caracteres de escape y comillas. Un ejemplo de uso simple es el siguiente:
package main
import (
"fmt"
"strconv"
)
func main() {
str := `路多辛的, "所思所想"!`
quoted := strconv.Quote(str)
fmt.Println("Quoted: ", quoted)
unquoted, err := strconv.Unquote(quoted)
if err != nil {
fmt.Println("Unquote error: ", err)
} else {
fmt.Println("Unquoted: ", unquoted)
}
}
strconv.CanBackquote
La función strconv.CanBackquote se utiliza para verificar si una cadena se puede representar sin cambios como una cadena entre comillas inversas de una sola línea (es decir, una cadena que comienza y termina con ``). Un ejemplo de uso simple es el siguiente:
package main
import (
"fmt"
"strconv"
)
func main() {
str1 := "Hello, world!"
str2 := "`Hello, world!`"
str3 := "`Hello,\nworld!`"
fmt.Println(strconv.CanBackquote(str1)) // 输出:false
fmt.Println(strconv.CanBackquote(str2)) // 输出:true
fmt.Println(strconv.CanBackquote(str3)) // 输出:false
}