前言:
Go by Example 是一个实践性的教程,通过带注释的程序实例去学习 Go 语言。希望本文能给你在学习 Go 语言的过程中提供思路和源码方面的参考,请按照教程在线完成代码并理解每行代码。
说明:本文截选自实验楼教程【Go by Example 中文版】,教程总共21节内容,本文截选自前两节;
开发第一个Go程序 Hello World
1. 编写代码
打开桌面上的gedit,输入以下代码:
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
将代码文件保存为/home/shiyanlou/hello-world.go
。
2. 运行程序
打开桌面上的Xfce终端,输入下面的命令查看输出。
$ go run hello-world.go
![](https://img.haomeiwen.com/i226662/5135ca0efecda2d7.png)
有时候我们想将我们的程序编译成二进制文件。我们可以通过 go build 命来达到目的。
$ go build hello-world.go
$ ls
hello-world hello-world.go
然后我们可以直接运行这个二进制文件。
$ ./hello-world
hello world
值
代码实例
Go 拥有各值类型,包括字符串,整形,浮点型,布尔型等。下面是一些基本的例子。
package main
import "fmt"
func main() {
// 字符串可以通过 `+` 连接。
fmt.Println("go" + "lang")
// 整数和浮点数
fmt.Println("1+1 =", 1+1)
fmt.Println("7.0/3.0 =", 7.0/3.0)
// 布尔型,还有你想要的逻辑运算符。
fmt.Println(true && false)
fmt.Println(true || false)
fmt.Println(!true)
}
将代码保存为/home/shiyanlou/values.go
文件。
运行程序
打开桌面上的Xfce终端,输入下面的命令查看输出:
$ go run values.go
![](https://img.haomeiwen.com/i226662/88b6922c50832607.png)
变量
代码实例
在 Go 中,变量 被显式声明,并被编译器所用来检查函数调用时的类型正确性
package main
import "fmt"
func main() {
// `var` 声明 1 个或者多个变量。
var a string = "initial"
fmt.Println(a)
// 你可以申明一次性声明多个变量。
var b, c int = 1, 2
fmt.Println(b, c)
// Go 将自动推断已经初始化的变量类型。
var d = true
fmt.Println(d)
// 声明变量且没有给出对应的初始值时,变量将会初始化为
// _零值_ 。例如,一个 `int` 的零值是 `0`。
var e int
fmt.Println(e)
// `:=` 语句是申明并初始化变量的简写,例如
// 这个例子中的 `var f string = "short"`。
f := "short"
fmt.Println(f)
}
将代码保存为/home/shiyanlou/variables.go
文件。
运行程序
打开桌面上的Xfce终端,输入下面的命令查看输出:
$ go run variables.go
![](https://img.haomeiwen.com/i226662/e4a93733ae60b0e7.png)
常量
代码实例
Go 支持字符、字符串、布尔和数值 常量 。
// Go 支持字符、字符串、布尔和数值 _常量_ 。
package main
import "fmt"
import "math"
// `const` 用于声明一个常量。
const s string = "constant"
func main() {
fmt.Println(s)
// `const` 语句可以出现在任何 `var` 语句可以出现
// 的地方
const n = 500000000
// 常数表达式可以执行任意精度的运算
const d = 3e20 / n
fmt.Println(d)
// 数值型常量是没有确定的类型的,直到它们被给定了一个
// 类型,比如说一次显示的类型转化。
fmt.Println(int64(d))
// 当上下文需要时,一个数可以被给定一个类型,比如
// 变量赋值或者函数调用。举个例子,这里的 `math.Sin`
// 函数需要一个 `float64` 的参数。
fmt.Println(math.Sin(n))
}
运行程序
打开桌面上的Xfce终端,输入下面的命令查看输出:
$ go run constant.go
![](https://img.haomeiwen.com/i226662/c481abad2f04d993.png)
最后:
如果你想要查看完整教程,点击【Go by Example 中文版】即可,该教程的实验列表如下:
- 第1节 课程说明与学习方法
- 第2节 值,变量,常量
- 第3节 For循环,if/else分支,分支结构
- 第4节 数组,切片,关联数组,Range遍历
- 第5节 函数,多返回值,变参函数
- 第6节 闭包,递归
- 第7节 指针,结构体,方法,接口
- 第8节 错误处理,协程
- 第9节 通道,通道缓冲,通道同步,通道方向,通道选择器
- 第10节 超时处理,非阻塞通道操作,通道的关闭,通道遍历
- 第11节 定时器,打点器,工作池,速率限制,原子计数器
- 第12节 互斥锁,Go状态协程
- 第13节 排序,使用函数自定义排序,Panic,Defer
- 第14节 组合函数,字符串函数,字符串格式化
- 第15节 正则表达式,JSON
- 第16节 时间,时间戳,时间的格式化和解析
- 第17节 随机数,数字解析,URL解析
- 第18节 SHA1散列,Base64编码
- 第19节 读文件,写文件,行过滤器
- 第20节 命令行参数,命令行标志,环境变量
- 第21节 生成进程,执行进程,信号,退出
网友评论