写点什么

Go- 常量

用户头像
HelloBug
关注
发布于: 3 小时前
Go- 常量

Go 学习笔记,学习内容《Go入门指南》


代码示例可以直接运行,主要介绍以下内容:

  • 编译器可自动推导常量类型

  • 常量可用内置函数返回值赋值,不可用自定义函数

  • 数值型常量使用任何精度都不会溢出

  • 赋值时可使用 iota 变量

  • 定义的常量不使用不会报错


package main
import ( "fmt")
/*函数有返回值必须声明如下函数实现,编译报错:too many arguments to return have (number) want ()
func getNumber(){ return 5}*/
func getNumber() (num int) { return 5}
func main() { const Pi = 3.1415 fmt.Println(Pi)
/* 编译出错: a redeclared in this block */ //const a = 1 //const a = 2
const b1 string = "abc" // 显示指示类型 const b2 = "abc" // 编译器自动根据取值推导类型
/* 常量的值必须在编译的时候就能够确定 */ const c1 = 2 / 3 /* 编译出错:.getNumber() used as value 因为自定义函数均属于未知,无法用于常量的赋值,但可以使用内置函数 */ //const c2 = getNumber()
/* 数字型的常量没有大小和符号,使用任何精度都不会溢出 */ const Ln2 = 0.693147180559945309417232121458176568075500134360255254120680009 // 可通过反斜杠作为多行的连接符? const d = (1 << 100) >> 88 const e = -1.3183872345
const f, h = 1, 2 const ( Mon, Tues, Wed = 1, 2, 3 Thur, Fri, Sat = 4, 5, 6 ) const ( Boy = 0 Girl = 1 ) const ( Red int = iota ORANGE // 1 YELLO // 2 ) fmt.Println(YELLO) // 2
/* 每赋值一次 iota 取值+1,当重新遇到const时,iota 取值为0 */ const ( DOG = iota CAT = iota // 1 KANGOO = iota // 2 ) fmt.Println(KANGOO) // 2
/* 以上定义了很多常量,但是运行的时候不会报错:xxx declared but not used*/}
复制代码


发布于: 3 小时前阅读数: 6
用户头像

HelloBug

关注

还未添加个人签名 2018.09.20 加入

还未添加个人简介

评论

发布
暂无评论
Go- 常量