一、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语言相对来说比较好上手。