超级苦工
阅读 297
Go by Example 中文版(实例学习 Go 语言)

前言:

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
image.png
image.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
image.png
image.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
image.png
image.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 
image.png
image.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节 生成进程,执行进程,信号,退出
评论
相关推荐
阿斯蒂芬萨芬的

55522 function app() { echo 'sdfsdf';...

阿斯蒂芬萨芬的

55522 function app() { echo 'sdfsdf'; }...

浅谈Go类型转换之间的那些事

试着答一答这些问题 s[i]和(for _,v range)的v的区别是什么 var s string = "AB" fmt.Println(reflect.TypeOf(s[0]...

Kubernetes安装多master集群

...

MongoDB备份与还原

...

CentOS中安装mongo shell

添加官方 MongoDB 仓库 $ echo '[mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.o...

很漂亮的页面啊不错不错啊

很漂亮的页面啊不错不错啊...

在Kubernetes中部署第一个应用程序

...

在阿里云的ECS中安装Kubernetes

...

从0到1使用Kubernetes系列(二)——安装工具介绍

...

从0到1使用Kubernetes系列——Kubernetes入门

...

asdfasfdfd

asdfasdfsafd...

asdfafsdfsad

function sdf(){ echo "sdffsdfds"; }...

阿萨德飞

sdflkllsfdkj nihao...

【Golang+mysql】记一次mysql数据库迁移(一)

【Golang+mysql】记一次mysql数据库迁移(一) 文章地址:https://github.com/stayfoo/stayfoo-hub 一、准备 目标: 腾讯云 CVM 自建 mysql...

米粒社区系统什么部署?

发现现在一些功能还没开发或上线,不过感觉这个社区系统很强大,期待期待...

不错的网站

ceshi ceshi...

[译]想成为一个出色的Web工程师?学Golang而非Node.js。

原文: https://medium.com/codezillas/want-to-be-a-best-web-developer-learn-golang-not-node-js-69b4166d1...

跟我一起学习gRPC

扫描二维码,点击源码阅读菜单,跟我一起学习gRPC...

这个项目还会更新吗

这个项目github上1年多没有更新了...