Ir a las constantes del idioma
Una constante es un identificador de un valor simple, una cantidad que no se modificará mientras se ejecuta el programa.
Los tipos de datos en las constantes solo pueden ser booleanos, numéricos (entero, punto flotante y complejo) y cadena.
El formato de definición de una constante:
const identifier [type] = value
Puede omitir el especificador de tipo [tipo] porque el compilador puede inferir el tipo de la variable a partir de su valor.
- Definición de tipo explícito:
const b string = "abc"
- Definición de tipo implícito:
const b = "abc"
Varias declaraciones del mismo tipo se pueden abreviar como:
const c_name1, c_name2 = value1, value2
El siguiente ejemplo demuestra el uso de constantes:
ejemplo
paquete principal
importar "fmt"
func main() { const LENGTH int = 10 const WIDTH int = 5 var area int const a, b, c = 1, false, "str" //asignación múltiple
área = LARGO * ANCHO
fmt.Printf("El área es: %d", área)
println()
println(a, b, c)
}
El resultado de ejecutar el ejemplo anterior es:
面积为 : 50
1 false str
Las constantes también se pueden usar como enumeraciones:
const (
Unknown = 0
Female = 1
Male = 2
)
Los números 0, 1 y 2 representan género desconocido, femenino y masculino, respectivamente.
Las constantes pueden usar las funciones len(), cap(), unsafe.Sizeof() para evaluar expresiones. En una expresión constante, la función debe ser una función integrada; de lo contrario, no se compilará:
ejemplo
paquete principal
importar
const "no seguro" (
a = "abc"
b = len(a)
c = no seguro. Tamaño de(a)
)
función principal(){ println(a, b, c) }
El resultado de ejecutar el ejemplo anterior es:
abc 3 16
iota
iota, una constante especial, se puede considerar como una constante que el compilador puede modificar.
iota se restablecerá a 0 cuando aparezca la palabra clave const (antes de la primera línea dentro de const), y cada nueva línea de declaración constante en const hará que iota cuente una vez (iota puede entenderse como el índice de fila en el bloque de declaración const).
iota se puede utilizar como valor de enumeración:
const (
a = iota
b = iota
c = iota
)
El primer iota es igual a 0, y su valor aumentará automáticamente en 1 cada vez que se use iota en una nueva línea; por lo tanto, a=0, b=1, c=2 se puede abreviar de la siguiente manera:
const (
a = iota
b
c
)
uso de iota
ejemplo
paquete principal
importar "fmt"
func main() { const ( a = iota //0 b //1 c //2 d = "ha" //valor independiente, iota += 1 e //"ha" iota += 1 f = 100 // iota +=1 g //100 iota +=1 h = iota //7, reanudar la cuenta i //8 ) fmt.Println(a,b,c,d,e,f,g,h,i) }
El resultado de ejecutar el ejemplo anterior es:
0 1 2 ha ha 100 100 7 8
Mira otro ejemplo interesante de iota:
ejemplo
paquete principal
importar constante "fmt"
(
i=1<<iota
j=3<<iota
k
l
)
función principal() { fmt.Println("i=",i) fmt.Println("j=",j) fmt.Println("k=",k) fmt.Println("l=",l) }
El resultado de ejecutar el ejemplo anterior es:
i= 1
j= 6
k= 12
l= 24
iota significa sumar automáticamente 1 desde 0, entonces i=1<<0, j=3<<1 (<< significa desplazamiento a la izquierda), es decir: i=1, j=6, esto no es problema, la clave es k Y l, a partir de los resultados de salida, k=3<<2, l=3<<3.
Declaración sencilla:
- i=1 : desplaza 0 bits a la izquierda y permanece 1 sin cambios.
- j=3 : se desplaza 1 bit a la izquierda y se convierte en binario 110 , es decir, 6.
- k=3 : se desplaza a la izquierda 2 bits y se convierte en 1100 binario , es decir, 12.
- l=3 : se desplaza a la izquierda 3 bits y se convierte en binario 11000 , es decir, 24.
注:<<n==*(2^n)。