编程基础知识之常量定义
2015-12-03 14:09
519 查看
通过const关键字,你可以给字面常量指定一个友好的名字:
const Pi float64 = 3.14159265358979323846
const zero = 0.0 // 无类型浮点常量
const (
size int64 = 1024
eof = -1 // 无类型整型常量
)
const u, v float32 = 0, 3 // u = 0.0, v = 3.0,常量的多重赋值const a, b, c = 3, 4, "foo"
// a = 3, b = 4, c = "foo", 无类型整型和字符串常量
Go的常量定义可以限定常量类型,但不是必需的。如果定义常量时没有指定类型,那么它与字面常量一样,是无类型常量。
常量定义的右值也可以是一个在编译期运算的常量表达式,比如
const mask = 1 << 3
由于常量的赋值是一个编译期行为,所以右值不能出现任何需要运行期才能得出结果的表达式,比如试图以如下方式定义常量就会导致编译错误:
const Home = os.GetEnv("HOME")
原因很简单,os.GetEnv()只有在运行期才能知道返回结果,在编译期并不能确定,所以无法作为常量定义的右值。
const Pi float64 = 3.14159265358979323846
const zero = 0.0 // 无类型浮点常量
const (
size int64 = 1024
eof = -1 // 无类型整型常量
)
const u, v float32 = 0, 3 // u = 0.0, v = 3.0,常量的多重赋值const a, b, c = 3, 4, "foo"
// a = 3, b = 4, c = "foo", 无类型整型和字符串常量
Go的常量定义可以限定常量类型,但不是必需的。如果定义常量时没有指定类型,那么它与字面常量一样,是无类型常量。
常量定义的右值也可以是一个在编译期运算的常量表达式,比如
const mask = 1 << 3
由于常量的赋值是一个编译期行为,所以右值不能出现任何需要运行期才能得出结果的表达式,比如试图以如下方式定义常量就会导致编译错误:
const Home = os.GetEnv("HOME")
原因很简单,os.GetEnv()只有在运行期才能知道返回结果,在编译期并不能确定,所以无法作为常量定义的右值。
相关文章推荐
- 一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口
- php配置文件详解
- Java 计算返回当前第n个月
- 基于注解的Spring多数据源配置和使用
- python 之html的headers提取操作
- super和this的用法JAVA
- 成为JavaGC专家(1)—深入浅出Java垃圾回收机制
- google hack 之 查询语法
- php技术之路
- 在Spring Controller中将数据缓存到session
- C# int? int区别
- c# 扩展方法奇思妙用
- php通过递归 创建文件存储目录
- Mac 本地代码上传GitHub
- php 日期转成数字
- Python xrange与range的区别
- php拦截器 __get( )使用方法
- Panda3d code in github
- 指针类型学习总结(函数指针、数组指针和指针数组)
- php基于ftp执行远程文件传输