Go 语言中的变量与常量

栏目: IT技术 · 发布时间: 4年前

内容简介:代码清单 2-1 你好,火星:代码清单 2-1 中的计数器在计算时使用了类似 0.3783 这样的在了解过居住在火星对于年龄和体重有何种好处之后,我们接下来要考虑的就是旅行所需消耗的时长。 对于我们的旅程来说,光速旅行是最为理想的。 因为光在太空的真空环境中会以

Note

本文摘录自《Go语言趣学指南》第 2 章, 请访问 gpwgcn.com 以获取更多相关信息。

Go 语言中的变量与常量

代码清单 2-1 你好,火星: mars.go

// My weight loss program.                              // 为人类读者提供的注释
package main

import "fmt"

// main is the function where it all begins.            // 为人类读者提供的注释
func main() {
    fmt.Print("My weight on the surface of Mars is ")
    fmt.Print(149.0 * 0.3783)                           // 打印出 56.3667
    fmt.Print(" lbs, and I would be ")
    fmt.Print(41 * 365 / 687)                           // 打印出 21
    fmt.Print(" years old.")
}

代码清单 2-1 中的计数器在计算时使用了类似 0.3783 这样的 字面 数字,但并没有具体说明这些数字所代表的的含义,程序员有时候会把这种没有说明具体含义的字面数字称之为 魔数 。 通过使用常量和变量并为字面数字赋予描述性的名称,我们可以有效地减少魔数的存在。

在了解过居住在火星对于年龄和体重有何种好处之后,我们接下来要考虑的就是旅行所需消耗的时长。 对于我们的旅程来说,光速旅行是最为理想的。 因为光在太空的真空环境中会以 固定 速度传播,所以相应的计算将会变得较为简单。 与此相反的是,根据行星在太阳轨道上所处的位置不同,地球和火星之间的距离将会产生相当大的 变化

代码清单 2-3 引入了两个新的关键字 constvar ,它们分别用于声明常量和变量。

代码清单 2-3 实现光速旅行: lightspeed.go

// How long does it take to get to Mars?
package main

import "fmt"

func main() {
    const lightSpeed = 299792 // km/s
    var distance = 56000000   // km

    fmt.Println(distance/lightSpeed, "seconds") // 打印出“186 seconds”

    distance = 401000000
    fmt.Println(distance/lightSpeed, "seconds") // 打印出“1337 seconds”
 }

只要将代码清单 2-3 中的代码输入至 Go 游乐场然后点击运行按钮,我们就可以计算出从地球出发到火星所需的时间了。 能够以光速前进是一件非常便捷的事情,不消一会儿工夫你就到达了目的地,你甚至都不会听到有人抱怨说“我们怎么还没到?”。

这段代码的第一次计算通过声明 distance 变量并为其赋予初始值 56,000,000 公里来模拟火星与地球相邻时的情形,而在进行第二次计算的时候,则通过为 distance 变量赋予新值 401,000,000 公里来模拟火星和地球分列太阳两侧时的情形(其中 401,000,000 公里代表的是火星和地球之间的直线距离)。

{注意}

lightSpeed 常量是不能被修改的, 尝试为其赋予新值将导致 Go 编译器报告错误:“无法对 lightSpeed 进行赋值”。

{注意}

变量必须先声明后使用。 如果变量尚未使用 var 关键字进行声明, 那么尝试向它赋值将导致 Go 报告错误, 比如在前面的代码中执行 speed = 16 就会这样。 这一限制有助于发现类似“想要向 distance 赋值结果却键入了 distence ”这样的问题。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

联盟

联盟

里德•霍夫曼、本•卡斯诺查、克里斯•叶 / 路蒙佳 / 中信出版社 / 2015-2-5 / 39.00元

在充满变化的世界,联盟潜在的合伙人 将不确定的行业转变为可掌控的职业生涯 与世界紧密连接,开创精彩的事业与未来 终生效忠于一家公司已经成为历史,我们正在经历的自由雇佣制——将员工看作自由人——无法建立创新所需的高度信任与合作的关系。 互联网时代,企业如何用全新的人才策略定义员工的忠诚?未来职业成功的秘诀是什么? 《联盟》提供了一种使雇主与员工之间从商业交易转变为互惠关......一起来看看 《联盟》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具