GO语言入门指南:基础语法和常用特性解析(三)|青训营

58 阅读3分钟

GO语言入门指南:基础语法和常用特性解析(三)

一、字符串操作

1.类型转换

将一个字符串转换成另一个类型,则可以使用下列语法:

var str string ="10"

var num int

num,_=strconv.Atoi(str)

输入最后一句时会自动导入strconv包

该语句将本为string类型的str转换为int类型,并赋值给num

strconv.Atoi函数返回两个值,第一个为转换后的int整型值,第二个为在转换时可能发生的错误,若不需要返回该错误,则可以像例子中一样,使用下划线 _ 来忽略该错误

明白如何将字符串转换为整型后,我们再给出其余较为常用的几个字符串操作函数:

整数->字符串,strconv.Itoa(该函数仅返回字符串类型值,不会返回错误)

字符串->浮点数,strconv.ParseFloat(该函数同样会返回两个值)

浮点数->字符串,strconv.FormaFloat(该函数仅返回字符串类型值,不会返回错误)

2.格式化

GO语言中格式化输出字符串使用fmt.Printf函数

%v 会输出结构体

s:="hello" fmt.Printf("s=%v\n",s) //会输出s=hello

%+v 会输出包括结构体的字段名

p:={1,2} fmt.Printf("p=%+v\n",p) //会输出p={x:1 y:2}

%#v 会输出该值的源代码片段

fmt.Printf("p=%#v\n",p) //会输出p=main.point{x:1 y:2}

本文仅列举部分字符串操作,更多的操作还请前往官方文档查看

二、接口

GO语言中的接口将所有具有共性的方法定义在一起,即只要实现了其中的方法就是实现了这个接口的功能,这是GO语言的不同点

因此,在实际应用中可以通过接口来作为参数以实现对不同类型的调用,从而实现多态和代码功能

image.png

三、错误处理

GO语言的错误处理与JAVA有些类似,在实际写代码的过程中也就是需要将错误抛出并处理

error类型即错误,其是一个接口,在右键代码查找其定义后便可发现

type error interface{

Error() string

}

使用错误处理时会自动导入error包,其中常用一个名为error.New()的函数来自定义一个错误信息并返回

image.png

GO语言提供panic-recover模式,该模式与其他语言的Exception机制类似,用于处理错误异常

四、JSON

需要使用JSON处理时,要保证代码中结构体的每一个成员首字母应该大写

如果对输出的信息有特殊的要求,可以在成员后加上tag进行标识

image.png

五、时间处理

GO语言中时间处理与其他语言基本一致,具体用法请参考官方文档

image.png

六、协程

协程,即并发处理,GO语言支持并发,在代码中通过go关键字来开启协程goroutine

goroutine是轻量级线程,其语法如下:

go 函数名(参数)

线程中可以设置缓冲区,通过make函数来生成,语法如下:

ch:=make(chan int ,100)

指定一个int类型大小为100的缓冲区

带缓冲区的通道允许发送端的数据发送和接收端的数据接收异步,即发送的数据可以暂存在缓冲区中等待接收端主动去获取而不是立刻需要接收端接收,这样可以避免一次性传入大量数据导致错误

image.png

在图中可以看到import导入了一个名为os的包,该包提供了操作系统的函数,主要是在服务器端进行系统的基本操作,如中断、文件操作等等

七、个人心得

本文列举了部分常用的GO语言进阶语法,希望对各位有所帮助,在学习途中遇到不会的语法可以参看官方文档中的解释,在官方文档中能学习到非常多有用的语法、了解GO语言的各种特性等