Go- 常量

Go 学习笔记,学习内容《Go入门指南》
代码示例可以直接运行,主要介绍以下内容:
编译器可自动推导常量类型
常量可用内置函数返回值赋值,不可用自定义函数
数值型常量使用任何精度都不会溢出
赋值时可使用 iota 变量
定义的常量不使用不会报错
复制代码
版权声明: 本文为 InfoQ 作者【HelloBug】的原创文章。
原文链接:【http://xie.infoq.cn/article/25845932c33f8d5b933a1d36c】。文章转载请联系作者。

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*/}版权声明: 本文为 InfoQ 作者【HelloBug】的原创文章。
原文链接:【http://xie.infoq.cn/article/25845932c33f8d5b933a1d36c】。文章转载请联系作者。
还未添加个人签名 2018.09.20 加入
还未添加个人简介

促进软件开发及相关领域知识与创新的传播
京公网安备 11010502039052号


评论