Go语言的常用特性和基础语法(实践文章) | 青训营

182 阅读4分钟

在第一天的直播课程中我学习到了什么是Go语言和Go语言的基础语法。

什么是Go语言

Go语言全名叫做Golang,它是由Google公司研发制作出来的,可以把它看作是C语言的升级版,也被人们称为“21世纪的“C语言。

Go语言具有八大非常优秀的常用特性:

1. 高性能、高并发

2. 语法简单、学习曲线平缓

3. 丰富的标准库

4. 完善的工具链

5. 静态链接

6. 快速编译

7. 跨平台

8. 垃圾回收

Go语言的基础语法

输出

首先我们要确定Go语言的基础语法框架,在最顶端写上main包,他是程序的入口文件。然后我们就要知道需要使用import来导入Go语言标准库中的包,如果我们想要输出可以使用fmt包。最后我们只需要在main函数中调用fmt包来进行输出。代码如下:

package main

import (
    "fmt"
)

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

运行的话我们可以在命令框使用go run进行一键运行,也可以先使用go build编译,之后使用./main进行运行。

变量

Go语言是一门强类型语言,一般使用var来定义变量,它可以自动推导变量的类型。同时也可以使用:=来定义变量。如果你很想给他声明类型可以进行如下操作:

var b, c int = 1, 2

在Go语言之中我们可以使用+号来进行字符串的拼接:

var a = 'initial'
g := a + 'foo'

如果你想声明一个常量,可以在声明的量前边加一个const。

if else

Go语言中的if else和Java中的写法十分类似,区别就是在判断的时候少了()。

if 7%2==0 {
    fmt.Println("yes")
} else {
    fmt.Println("no")
}

循环

在golang之中没有while循环和do while循环,只有for循环,这也大大简便了语法。如果只写一个for其他的什么都不写就代表是一个死循环,这时候我们可以使用break来跳出循环。有时候我们需要继续进行循环时我们可以使用continue来继续循环。

下面是一个基础for循环的例子:

for j := 7;j < 9;j++ {
    fmt.Println(j)
}

最后会输出7和8。

切片

不同于数组,他是一个可变长度的数组,可以任意时候去改变长度。使用make来创建他:

s := make([]string, 3)

创建一个长度为3的字符串切片 可以使用append来添加数据,也可以使用copy来给一个切片复制到另外一个切片。

map

类似于Java中的哈希,拥有键值对。如下是如何创建map:

m := make(map[string]int)

[ ]中的是map的主键,也就是string类型,int类型是map的值。 我们可以使用delete取删除map中的键值。

range

可以使用range进行遍历,如果是数组等类型,有两个值去接收,第一个值接收索引,第二个值接收数据。 如果不想接收索引,可以将第一个值设置成_。

for i, j = range nums {
    fmt.Println(i, j)
}

如果是map,第一个值就是key,第二个值就是value。

函数

跟Java的区别就在于返回值类型是写在函数名和参数的后面的,例子如下:

func add(a int,b int) int{
    return a + b
}

指针

主要用途就是对传入的参数进行修改。

结构体

主要是定义结构体变量时,类型一般写在后面。使用type来定义结构体。代码如下:

type user struct {
    name string
    password string
}

字符串

字符串要先strings.才能引用方法,主要方法有Contains,Count,Index,Join,Repeat,Split,ToLower,ToUpper等等。

JSON处理

对于一个已有的结构体,如果其变量名首字母均为大写,即可使用json.Marshal进行序列化操作,序列化后会变成一个buf数组。若要输出字符,需要使用string(buf)进行强制类型转换。也可以使用json.Unmarshal实现反序列化到一个空变量中。