Introducción a la conversión entre el tipo de datos básico de Go y el tipo de cadena

 

Este artículo presenta principalmente la conversión mutua entre los tipos de datos básicos de Go y los tipos de cadena. El artículo presenta el código de muestra con gran detalle. Tiene un cierto valor de aprendizaje de referencia para el estudio o el trabajo de todos. Amigos que lo necesiten, sigan al editor para aprender juntos .

1. Tipo de datos básicos a tipo de cadena

Método 1: fmt.Sprintf("% parámetro", expresión)

1) Explicación oficial: Sprintf genera una cadena formateada de acuerdo con el parámetro de formato y devuelve la cadena.

1

func Sprintf(format string, a ...interface{}) string

2) Método de uso específico:

① Tipo de número a tipo de cadena

1

2

var num1 int = 99

str := fmt.Sprintf("%d", num1)

② Tipo flotante a tipo cadena

1

2

var num2 float64 = 23.456

str := fmt.Sprintf("%f", num2)

③ Tipo booleano a tipo de cadena

1

2

var b bool = true

str := fmt.Sprintf("%t", b)

④ Tipo de carácter (byte) a tipo de cadena

1

2

var mychar byte = 'h'

str := fmt.Sprintf("%c", mychar)

Método 2: use las funciones del paquete strconv

1

2

3

4

5

func FormatBool(b bool) string

func FormatInt(i int64, base int) string

func FormatUint(i uint64, base int) string

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

func Itoa(i int) string

① Tipo de número a tipo de cadena (dos formas)

1

2

3

4

5

var num1 int = 99

//第一个参数需转化为int64类型,第二个参数表示几进制

str := strconv.FormatInt(int64(num1), 10)

var num1 int = 99

str := strconv.Itoa(num1)

② Tipo flotante a tipo cadena

1

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

f representa el número de punto flotante que se convertirá

formato de representación fmt: 'f' (-ddd.dddd), 'b' (-ddddp±ddd, el exponente es binario), 'e' (-d.dddde±dd, exponente decimal), 'E' (-d. ddddE±dd, exponente decimal), 'g' (use el formato 'e' para un exponente grande, de lo contrario, el formato 'f'), 'G' (use el formato 'E' para un exponente grande, de lo contrario, el formato 'f').

prec controla la precisión (excluyendo la parte del exponente): para 'f', 'e', ​​'E', indica el número de dígitos después del punto decimal; para 'g', 'G', controla el total número de dígitos. Si prec es -1, significa usar el número mínimo de números requeridos para representar f.

bitSize indica el tipo de fuente de f (32: float32, 64: float64), y se redondeará en consecuencia.

1

2

var num2 float64 = 23.456

str := strconv.FormatFloat(num2, 'f', 3, 64)

③ Tipo booleano a tipo de cadena

1

2

var b bool = true

str := strconv.FormatBool(b)

2. Tipo de cadena a tipo de datos básico

Usando las funciones del paquete strconv

① Tipo de cadena a tipo booleano

1

2

var str string = "true"

b, _ := strconv.ParseBool(str)

② Tipo de cadena a tipo de número (dos formas)

a.

1

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

Devuelve el valor entero representado por la cadena, aceptando un signo.

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。

1

2

var str string = "1234"

n, _ := strconv.ParseInt(str, 0, 64)

b.

1

2

var str string = "1234"

num, _ := strconv.Atoi(str)

③字符串类型转浮点类型

1

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

如果s合乎语法规则,函数会返回最为接近s表示值的一个浮点数(使用IEEE754规范舍入)。bitSize指定了期望的接收类型,32是float32(返回值可以不改变精确值的赋值给float32),64是float64;返回值err是*NumErr类型的,语法有误的,err.Error=ErrSyntax;结果超出表示范围的,返回值f为±Inf,err.Error= ErrRange。

1

2

var str string = "123.456"

n, _ := strconv.ParseFloat(str, 64)

到此这篇关于Go基本数据类型与string类型互转的文章就介绍到这了,希望可以帮到你

转自:微点阅读   https://www.weidianyuedu.com

Supongo que te gusta

Origin blog.csdn.net/weixin_45707610/article/details/131829621
Recomendado
Clasificación