Golang 基础(二)

lexder · · 470 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。



常量

常量使用关键字 const 定义,用于存储不会改变的变量。无法在程序运行过程中修改它的值。

存储在常量中的数据只可以是布尔型、数字型(整数型,浮点型和复数)和字符串型。例如:

格式:const identifier [type] = value

const Pi = 3.141592658

const a = 3

Go语言中,可以省略类型说明符 type ,Go的编译器可以根据变量的值来推断它的类型,例如:

const a string = "abc" // 显式类型定义

const a := "abc" // 隐式类型定义

另外,未定义类型的常量会在必要时候根据上下文来获得相关类型,例如:

var n int

f(n + 5) // 无类型的数字型常量"5" 它的类型再这会变成int

常量的值必须在编译时候就能够确定的,可以在赋值表达式中涉及计算过程,但是所有用于计算的值必须在编译期间就能获得:

正确做法:const c = 2/3

错误做法:const c = getNumber()

在编译期间自定义函数属于未知,因此无法用于常量的赋值,但是内置函数可以使用,比如len()

注:常量的值如果赋值是一个精度过小的数字型变量,可能会因为无法正确表达常量所代表的的数字而导致溢出,这会在编译期间引发错误。

常量允许使用并行赋值的方式,例如:

const beef, two, c = "eat", 2, "veg"

const (

    a, b, c = 1, 2, 3

    d, e, f = 4, 5, 6

)

常量可以作枚举,例如:

const (

    Unknown = 0

    Female = 1

    Male = 2

)

const (

    a = iota // 此时的a是0

    b = iota // 此时的b是1

    c = iota  // 此时的c是2

    // iota在新的一行被使用时,它的值都会自动加1

)

简写如下:

const (

    a = iota

    b

    c

)

iota的使用:

iota是golang语言的常量计数器,只能在常量的表达式中使用。

iota在const关键字出现时将被重置为0,const中每增加一行常量声明,将是iota计数一次(仅在const内部计数)。

const (

    a = iota    // a =0 

    b               // b = 1

    c               // c = 2

)

const d = iota // d=0

参考资料:https://studygolang.com/articles/2192


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:lexder

查看原文:Golang 基础(二)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

470 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传