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 加入
还未添加个人简介
促进软件开发及相关领域知识与创新的传播
评论