Latest web development tutorials

Vai costante lingua

Valore costante è un identificatore semplice, il programma è in esecuzione, l'importo non verrà modificato.

Costante tipo di dati può essere solo booleano, numerico (intero, virgola mobile e numeri complessi) e la stringa.

Costanti formato definito:

const identifier [type] = value

È possibile omettere l'indicatore di tipo [type], perché il compilatore può dedurre il valore della variabile al suo tipo.

  • Esplicita definizione del tipo: const b string = "abc"
  • definizione di tipo implicito: const b = "abc"

Una pluralità dello stesso tipo di istruzione può essere abbreviata come segue:

const c_name1, c_name2 = value1, value2

Il seguente esempio illustra l'applicazione delle costanti:

package main

import "fmt"

func main() {
   const LENGTH int = 10
   const WIDTH int = 5   
   var area int
   const a, b, c = 1, false, "str" //多重赋值

   area = LENGTH * WIDTH
   fmt.Printf("面积为 : %d", area)
   println()
   println(a, b, c)   
}

Esempi dei risultati operativi di cui sopra come segue:

面积为 : 50
1 false str

Le costanti possono anche essere utilizzati per enumerare:

const (
    Unknown = 0
    Female = 1
    Male = 2
)

I numeri 0, 1 e 2, rispettivamente, a nome sconosciuto di genere, donne e uomini.

Le costanti possono usare len (), cap (), unsafe.Sizeof () per calcolare il valore di un'espressione costante. espressione costante, la funzione deve essere integrato nelle funzioni, ma per il resto il compilatore:

package main

import "unsafe"
const (
    a = "abc"
    b = len(a)
    c = unsafe.Sizeof(a)
)

func main(){
    println(a, b, c)
}

Esempi dei risultati operativi di cui sopra come segue:

abc 3 16

iota

iota, costante speciale, può essere considerata una modifica del compilatore può essere costante.

Quando ognuno di la parola chiave const appare, viene azzerato, e poi la prossima prima const appare una volta ogni virgola, che rappresentano i numeri sono aumentati automaticamente di uno.

iota può essere utilizzato come valori di enumerazione:

const (
    a = iota
    b = iota
    c = iota
)

Il primo iota uguale a 0, ogni volta che viene utilizzato iota nuova riga, esso verrà automaticamente aggiunto al valore di 1, quindi a = 0, b = 1, c = 2 può essere abbreviata come segue:

const (
    a = iota
    b
    c
)

iota Usage

package main

import "fmt"

func main() {
    const (
            a = iota   //0
            b          //1
            c          //2
            d = "ha"   //独立值,iota += 1
            e          //"ha"   iota += 1
            f = 100    //iota +=1
            g          //100  iota +=1
            h = iota   //7,恢复计数
            i          //8
    )
    fmt.Println(a,b,c,d,e,f,g,h,i)
}

Esempi dei risultati operativi di cui sopra come segue:

0 1 2 ha ha 100 100 7 8

Guardate briciolo di esempi interessanti:

package main

import "fmt"
const (
	i=1<<iota
    j=3<<iota
    k
    l
)

func main() {
	fmt.Println("i=",i)
	fmt.Println("j=",j)
	fmt.Println("k=",k)
	fmt.Println("l=",l)
}

Esempi dei risultati operativi di cui sopra come segue:

i= 1
j= 6
k= 12
l= 24

iota rappresenta da 0 a 1 aggiungere automaticamente, in modo da i = 1 << 0, j = 3 << 1 (<< rappresenta spostamento a sinistra significa), vale a dire: i = 1, j = 6, questo non è un problema, la chiave k e l, l'uscita dal look, k = 3 << 2, l = 3 << 3.