Go 语言入门指南 | 青训营

190 阅读3分钟

一、GO语言简介

Go语言是一款由google出品的计算机编程语言。语法简单易懂,语法风格类似C语言,并在C语言的基础上进行了大幅度的简化。

二、基础语法

hollo world

package main

import (
	"fmt" //导入fmt包,用于输入输出字符串,格式化字符串
)

func main() {
	fmt.Println("hello world")
}

变量类型

变量声明主要有两种方式,第一种使用“=”符号,如

var a = "initial" //可以自动识别变量类型
var b, c int = 1, 2 //也可标明变量类型

也可使用:=,如

var e float64
f := float32(e)

常量声明将var改成const即可,如

const s string = "const"
const h = 3000000

if-else

和c还有c++类似,但是不用(),而且if后面必须是{},不能将语句写在同一行

if 7%2 == 0 {
    fmt.Println("7 is even")
} else {
    fmt.Println("7 is odd")
}

循环

只有for循环,没有while循环。循环内部可以用continue继续循环,break跳出循环

switch

switch后面变量名不需要括号,即使不加break语句也不会继续跑完后面的分支。也可以在switch后面不加任何变量,在case后面增加条件,类似if-else嵌套,但是更加清晰易懂

数组

具有编号且长度固定的元素序列,方便读取或存储特定索引上的值

切片slice

可任意时刻更改长度,可使用s[a:b]来截取部分数组,截取内容包含a, 不包含b

map

即hash

m := make(map[string]int)  //创建一个map,定义key和value分别为string和int
m["one"] = 1
m["two"] = 2 // 插入值
fmt.Println(m) // map[one:1 two:2]
fmt.Println(m["one"]) // 1

r, ok := m["unknow"] // ok记录这个key存不存在于map里
fmt.Println(r, ok) // 0 false

range

可以用来快速遍历map和slice。对于数组,返回的第一个是索引,第二个是储存值。对于map,返回的第一个是key,第二个是value

函数

变量类型后置。支持返回多个值,通常第一个是真正的返回结果,第二个是错误信息

指针

主要用于对传入参数进行修改

错误处理

使用单独的返回值来传递错误信息,能很清晰的知道哪个函数产生了错误,并且能够用if-else来处理错误

字符串操作

在strings包里有很多字符串工具函数,比如Contains, Count

字符串格式化

Println打印并换行,Printf用%v只会打印出值,%+v会打印出字段的名字和值,%#v打印出结构体的整个构造的类型名称以及字段名字和值。 用%.2f打印出保留两位小数的浮点数

时间处理

用time.Now()获取当前时间,也可计算时间之间的差异,格式化时间

字符串和数字之间的转换

在strconv包中,ParseInt的三个参数分别为字符串,进制和精度。

三、个人分析与思考

通过学习Go语言的基础语法,我充分意识到了在可以实现的功能方面,Go语言和其他语言并没有什么太大的区别,但是Go语言相比其他语言确实要简洁一些。我认为这也是为什么Go语言相对来说比较好上手。