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

2023年 8月 23日 104.4k 0

前言

本文主要

Go入门

go语言特点

go语言具有高性能,高并发的特点,语法简单,具有丰富的标准库和完善的工具链,并且能实现静态链接和快速编译,能跨windows、linux等多个平台,还具有垃圾回收功能,提高资源利用率。

国内字节、腾讯、b站等和国外Google和Facebook等公司都开始使用go语言。

Go基础语法

一般入门一种新语言都是从“Hello world"开始,我们也不例外:

image.png

其中,3和4行引入的包Package fmt用类似于C语言的printf和scanf的函数实现了格式化的I/O。

go语言特点

1.变量

image.png

不同于C语言,命名变量时需要先名称后数据类型,赋值需要:=

2.条件语句

image.png

不同于C语言,if后没有小括号,之后的大括号不能省略。

3.循环结构

image.png

不同于C语言,循环结构没有while等,只有for结构,且fou后没有小括号,之后的大括号不能省略。

4.case结构

image.png

变量输入比较宽松,如下面的结构。

在运行过程中,一旦符合了其中一种条件,将不会遍历下面的case,这不同于C
语言。

5.切片

image.png

采用make构造,比较常用,相应的数组类似c语言,就不介绍了。

6.map

Go 语言入门指南:基础语法和常用特性解析| 青训营-1

具有key和value,一一对应。ok是遍历整个map进行查找,进而返回布尔值

7.range

Go 语言入门指南:基础语法和常用特性解析| 青训营-1

该代码中,选择一定范围进行遍历,输出是key和value对应结构。
此处应该是a A;b B的结果。

8.函数

Go 语言入门指南:基础语法和常用特性解析| 青训营-3

从代码13和22行中可见,函数引用中map需要先数据类型再具体数值。

9.指针

image.png

相比于C语言,两者用法相似。大家可能觉得指针学习比较难,但是只要明白你是需要借用变量还是更改变量值,就能明白需不需要指针。

例如,在引用函数add2后n值并没有变,是因为变化的n值没有传出来,n还延用之前值。
而在引用函数add2ptr后变化后的n地址被取出来,n值发生变化。

10.结构体

image.png

image.png

代码中有多种结构体创建方法,并且还可以结合指针进行结构体修改。

11.错误

image.png

有错误输入时,及时反馈出"not found"

12.字符串

image.png

HasPrefix是判断a这个字符串中是否有后者(这里是“he”)的前缀,相应HasSuffix则是判断是否有后者(这里是“llo”)的后缀。

其中,在UTF-8 编码中,一个英文字母为一个字节,一个中文为三个字节。因此最后一行长度为6。

13.格式

Go 语言入门指南:基础语法和常用特性解析| 青训营-4

image.png

go语言中,%v可以表示数字、字符等,比c语言更加简洁。%+v、%#v是显示更多参数性质。

14.json

image.png

代码第10行中可以单独重新定义变量名称,Marshal递归遍历值v,第16行和第30行是对应相反操作。

15.时间

Go 语言入门指南:基础语法和常用特性解析| 青训营-5

可以得到现在时间,还可取时间戳。

其中,进行时间格式修改时,只能采用"2006-01-02 15:04:05"作为基准。

16.时间

Go 语言入门指南:基础语法和常用特性解析| 青训营-6

strconv包实现了基本数据类型与其字符串表示的转换。第二个中,10表示该111为十进制数,64则是返回64位的数据

感想

整体感觉go语言在语法上时c语言和python的结合,但少了c语言一些”;“等繁杂操作,比python引用包更容易,综合了两者的优势。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论