微信号:Golangweb

介绍:欢迎来到 Go语言社区 社区网址:www.golangweb.com APP网址:app.golangweb.com 社区非公司性质,完全个人爱好建立;做的不好的地方大家见谅.

厚土Go学习笔记 | 10. 常量 与 数值常量

2017-11-28 22:30 厚土火焰山

菅俊菠,70后IT人,程序员到产品经理/项目经理,先后涉猎教育、企管、煤矿、电商等多个领域的系统开发和团队管理工作。擅长业务分析、团队管理,关注前沿技术,目前注意力在golang、kotlin。微信号:hotu2010

共 1432 字,阅读需 4 分钟

量的定义与变量类似,只是需要使用 const 关键字。

常量可以是字符、字符串、布尔型、数字型的值。

需要注意的是,常量不可以使用 := 语法定义。

package main

import (
    "fmt"
)

const Pi = 3.14

func main() {
    const World = "厚土"
    fmt.Println("Hello", World)
    fmt.Println("Happy", Pi, "Day")

    const Truth = true
    fmt.Println("Go rules?", Truth)
}

运行结果是

Hello 厚土
Happy 3.14 Day
Go rules? true

数值常量是高精度的 值。

未指定数据类型的常量,由上下文来决定其类型。

完整代码

package main

import (
    "fmt"
)

const (
    Big = 1 <<100
    Small = Big >> 99
)

func needInt(x int) int {
    return x * 10 + 1
}

func needFloat(x float64) float64 {
    return x * 0.1
}

func main() {
    //fmt.Println(Big)
    fmt.Println("Small is",Small)
    fmt.Println("needInt Small is",needInt(Small))
    fmt.Println("needFloat Small is",needFloat(Small))
    fmt.Println("needFloat Big is",needFloat(Big))
    //fmt.Println(needInt(Big))
}

你可以试着把主函数中的注释符号去掉,看看效果。

你会发现Big超出了int的最大值边界。

 
Golang语言社区 更多文章 Gost -- 一个极简且有用的GOPATH管理工具 Golang随机time.sleep的Duration问题 Golang中巧用defer进行错误处理 golang profile用法 用生产者消费者理解golang channel
猜您喜欢 访谈|360前端负责人月影:赛跑项目和跳水项目的金牌含量其实一样 为什么说解耦的战术,决定了架构的高度? 愤怒的唐僧 猜您所想:淘宝搜索\/推荐系统背后深度强化学习与自适应在线学习的实践之路 树莓派上可以运行caffe吗?