go语言基础库 go 语言基础( 四 )


func 函数名 (参数1,参数2,...) (返回值类型1, 返回值类型2,...)
func (this *结构体名) 函数名(参数 string) (返回值类型1, 返回值类型2){}
使用大小来区分函数可见性
大写是public类型
小写是private类型
func prifunc int{}
func pubfunc int{}
声明静态变量
const value int
定义变量
var value int
声明一般类型、接口和结构体
声明函数
func function () int{}
go里面所有的空值对应如下
通道类型
内建函数 new 用来分配内存 , 它的第一个参数是一个类型,不是一个值,它的返回值是一个指向新分配类型零值的指针
func new(Type) *Type
[这位博主有非常详细的分析]
Go 语言支持并发,我们只需要通过 go 关键字来开启 goroutine 即可 。
goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的 。
同一个程序中的所有 goroutine 共享同一个地址空间 。
语法格式如下:
通道(channel)是用来传递数据的一个数据结构 。
通道的声明
通道可用于两个 goroutine 之间通过传递一个指定类型的值来同步运行和通讯 。操作符 - 用于指定通道的方向,发送或接收 。如果未指定方向 , 则为双向通道 。
[这里有比较详细的用例]
go里面的空接口可以指代任何类型(无论是变量还是函数)
声明空接口
go里面的的强制类型转换语法为:
int(data)
如果是接口类型的强制转成其他类型的语法为:
go里面的强制转换是将值复制过去,所以在数据量的时候有比较高的运行代价
GO语言(十六):模糊测试入门(上)本教程介绍了 Go 中模糊测试的基础知识 。通过模糊测试,随机数据会针对您的测试运行,以尝试找出漏洞或导致崩溃的输入 。可以通过模糊测试发现的一些漏洞示例包括 SQL 注入、缓冲区溢出、拒绝服务和跨站点脚本攻击 。
在本教程中,您将为一个简单的函数编写一个模糊测试 , 运行 go 命令,并调试和修复代码中的问题 。
首先,为您要编写的代码创建一个文件夹 。
1、打开命令提示符并切换到您的主目录 。
在 Linux 或 Mac 上:
在 Windows 上:
2、在命令提示符下,为您的代码创建一个名为 fuzz 的目录 。
3、创建一个模块来保存您的代码 。
运行go mod init命令,为其提供新代码的模块路径 。
接下来 , 您将添加一些简单的代码来反转字符串,稍后我们将对其进行模糊测试 。
在此步骤中,您将添加一个函数来反转字符串 。
a.使用您的文本编辑器,在 fuzz 目录中创建一个名为 main.go 的文件 。
独立程序(与库相反)始终位于 package 中main 。
此函数将接受string,使用byte进行循环,并在最后返回反转的字符串 。
此函数将运行一些Reverse操作,然后将输出打印到命令行 。这有助于查看运行中的代码,并可能有助于调试 。
e.该main函数使用 fmt 包,因此您需要导入它 。
第一行代码应如下所示:
从包含 main.go 的目录中的命令行,运行代码 。
可以看到原来的字符串,反转它的结果,然后再反转它的结果,就相当于原来的了 。
现在代码正在运行,是时候测试它了 。
在这一步中,您将为Reverse函数编写一个基本的单元测试 。
a.使用您的文本编辑器 , 在 fuzz 目录中创建一个名为 reverse_test.go 的文件 。
b.将以下代码粘贴到 reverse_test.go 中 。
这个简单的测试将断言列出的输入字符串将被正确反转 。

推荐阅读