go语言单行注释 go语言%t( 四 )


直接操控底层计算机指令进行编程是非常繁琐和容易出错的 。高级编程语言通过对底层指令进行一些封装和对数据进行一些抽象,从而使得编程变得直观和易于理解 。
在流行高级编程语言中,一个操作通常是通过函数(function)调用或者使用操作符(operator)运算来完成的 。大多数高级编程语言都支持一些条件和循环控制语句 。这些条件和循环控制语句可以看作是特殊的操作 。它们的语法接近于人类语言,因此一个人写的代码很容易被其他人理解 。
在大多数高级编程语言中,数据通常被抽象为各种类型(type)和值(value) 。一个类型可以看作是值的模板 。一个值可以看作是某个类型的实例 。大多数编程语言支持自定义类型和若干预声明类型(即内置类型) 。一门语言的类型系统可以说是这门语言的灵魂 。
编程中常常会使用大量的值 。一些在编码阶段可确定的值可以用它们的字面形式(literal , 即字面量)来表示 。为了编程灵活和不易出错 , 其它的值一般使用变量(variable)和(具名)常量(named constant)来表示 。
在《Go语言101》中,具名的函数、具名的值(包括变量和具名常量)、以及定义类型和类型别名将被统称为代码要素 。代码要素名必须为标识符(identifier) 。
高级编程语言代码将被编译器或者解释器转换为底层机器码进行执行 。为了帮助编译器和解释器解析高级语言代码,一些单词将被用做关键字(keyword) 。这些单词不能被当做标识符使用 。
很多现代高级语言使用包(package)来组织代码 。一个包必须引入(import)另一个包才能使用另一个包中的公有(导出的)代码要素 。包名和包的引入名也都必须是标识符 。
尽管高级编程语言代码比底层机器指令友好和易懂,我们还是需要一些注释来帮助自己和其他程序员理解我们所写的代码 。在下一节的程序示例中,我们可以看到很多注释 。
一个简单的Go示例程序
为了对各种代码元素有一个更清楚的认识,让我们来看一个简短的Go示例程序 。和很多其流行语言一样 , Go使用//来起始一个行注释,使用一个/*和*/对来包裹一个块注释 。
下面是这个Go示例程序 。请注意阅读其中的注释 。程序之后有更多解释 。
package main // 指定当前源文件所在的包名
import "math/rand" // 引入一个标准库包
const MaxRand = 16 // 声明一个具名整型常量
// 一个函数声明
/*
StatRandomNumbers生成一些不大于MaxRand的非负
随机整数 , 并统计和返回小于和大于MaxRand/2的随机数
个数 。输入参数numRands指定了要生成的随机数的总数 。
*/
func StatRandomNumbers(numRands int) (int, int) {
// 声明了两个变量(类型都为int,初始值都为0)
var a, b int
// 一个for循环代码块
for i := 0; inumRands; i++ {
// 一个if-else条件控制代码块
if rand.Intn(MaxRand)MaxRand/2 {
a = a + 1
} else {
b++ // 等价于:b = b + 1
}
}
return a, b // 此函数返回两个结果
}
// main函数,或主函数,是一个程序的入口函数 。
func main() {
var num = 100
// 调用上面声明的StatRandomNumbers函数,
// 并将结果赋给使用短声明语句声明的两个变量 。
x, y := StatRandomNumbers(num)
// 调用两个内置函数(print和println) 。
print("Result: ", x, " + ", y, " = ", num, "? ")
println(x+y == num)
}
将上面的程序代码存盘到一个名为basic-code-element-demo.go 的文件中并使用下列命令运行此程序:

推荐阅读