在第一天的直播课程中我学习到了什么是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实现反序列化到一个空变量中。