Latest web development tutorials

Go константы языка

Постоянное значение является простым идентификатором, программа запущена, сумма не будет изменен.

Постоянный тип данных может быть только логическое, числовое (целое, с плавающей запятой и комплексные числа) и строку.

Константы определенный формат:

const identifier [type] = value

Можно опустить спецификатор типа [тип], потому что компилятор может вывести значение переменной к своему типу.

  • Явное определение типа: const b string = "abc"
  • Неявное определение типа: const b = "abc"

Множество того же типа оператора можно сократить следующим образом:

const c_name1, c_name2 = value1, value2

Следующий пример демонстрирует применение констант:

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)   
}

Примеры вышеуказанных операционных результатов в следующем порядке:

面积为 : 50
1 false str

Константы могут быть также использованы для перечисления:

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

Числа 0, 1 и 2, соответственно, от имени неизвестных пола, женщин и мужчин.

Константы могут использовать LEN (), крышка (), unsafe.Sizeof (), чтобы вычислить значение постоянной выражения. Постоянное выражение, функция должна быть встроенные функции, но в противном случае компилятор:

package main

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

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

Примеры вышеуказанных операционных результатов в следующем порядке:

abc 3 16

йота

йота, специальная константа, можно считать модификацией компилятор может быть постоянным.

Когда каждый из константным ключевым словом, оказывается, сбрасывается в ноль, а затем следующий, прежде чем сопзЬ появляется один раз каждый йоту, они представляют собой номера автоматически увеличивается на единицу.

Йота можно использовать в качестве значений перечисления:

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

Первый йота равен 0, когда йота новая линия используется, он будет автоматически добавлен к значению 1, поэтому а = 0, B = 1, C = 2 можно сократить следующим образом:

const (
    a = iota
    b
    c
)

Использование йота

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)
}

Примеры вышеуказанных операционных результатов в следующем порядке:

0 1 2 ha ha 100 100 7 8

Посмотрите на йоту интересных примеров:

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)
}

Примеры вышеуказанных операционных результатов в следующем порядке:

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

йота составляет от 0 до автоматического добавления 1, так что я = 1 << 0, J = 3 << 1 (<< представляет собой сдвиг влево означает), а именно: я = 1, J = 6, это не проблема, ключ к и л, выход из внешнего вида, к = 3 << 2, л = 3 << 3.