Punto clave: la capa inferior de la cadena es una matriz de bytes, por lo que la cadena también se puede dividir.
Primero, echemos un vistazo a una demostración.
str := "121"
fmt.Println(str[0]) //string底层是一个byte数组,因此string也可以进行切片处理
Resultados de salida
49
explicar:
1. Primero, echemos un vistazo al tipo de datos después del corte de cadenas.
fmt.Printf("type=%T",str[0])
type=uint8
fmt.Printf("type=%T",str[:1])
type=string
2.Cuando se genere la matriz de bytes, se generará el ASCII correspondiente.
decimal | gráficos |
49 | 1 |
(1) str [0] se convierte en el int correspondiente
1.strInt := int(str[0])
(2) str [: 1] se convierte en el int correspondiente
2.strInt := int([]byte(str[:1]))