go语言入门教程:基本语法—常量constant

1、常量的使用

1.1 常量声明

常量是一个简单值的标识符,在程序运行时,不会被修改的量。ide

const identifier [type] = value
显式类型定义: const b string = "abc"
隐式类型定义: const b = "abc"
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)   
}

运行结果:ui

面积为 : 50
1 false str

常量能够做为枚举,常量组blog

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

常量组中如不指定类型和初始化值,则与上一行非空常量右值相同内存

package main
​
import (
    "fmt"
)
​
func main() {
    const (
        x uint16 = 16
        y
        s = "abc"
        z
    )
    fmt.Printf("%T,%v\n", y, y)
    fmt.Printf("%T,%v\n", z, z)
}

运行结果:字符串

uint16,16
string,abc

常量的注意事项:编译器

  • 常量中的数据类型只能够是布尔型、数字型(整数型、浮点型和复数)和字符串型
  • 未曾使用的常量,在编译的时候,是不会报错的
  • 显示指定类型的时候,必须确保常量左右值类型一致,须要时可作显示类型转换。这与变量就不同了,变量是能够是不一样的类型值

1.2 iota

iota,特殊常量,能够认为是一个能够被编译器修改的常量string

iota 能够被用做枚举值:io

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

第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;因此 a=0, b=1, c=2 能够简写为以下形式:编译

const (
    a = iota
    b
    c
)
iota 用法

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

运行结果:class

0 1 2 ha ha 100 100 7 8 

若是中断iota自增,则必须显式恢复。且后续自增值按行序递增

自增默认是int类型,能够自行进行显示指定类型

数字常量不会分配存储空间,无须像变量那样经过内存寻址来取值,所以没法获取地址。

相关文章
相关标签/搜索