随笔分类 -  Go

摘要:Test 我们在日常的工作过程中,自测是不可缺少的,公司还会要求所有的公共方法必须要写单测,在别的语言中,我们如果想要写单测还需要使用到测试框架,但是Go语言中,直接支持测试,并且使用起来非常简单。 比如说我现在写了一个: // twoSum 给定数组,求两个之和的数组内地址 func twoSum 阅读全文
posted @ 2022-04-06 00:34 一点浩然气~ 阅读(541) 评论(0) 推荐(1) 编辑
摘要:goroutine 协程(Coroutine) Golang 在语言层面对并发编程进行了支持,使用了一种协程(goroutine)机制, 协程本质上是一种用户态线程,不需要操作系统来进行抢占式调度,但是又寄生于线程中,因此系统开销极小,可以有效的提高线程的任务并发性,而避免多线程的缺点。但是协程需要 阅读全文
posted @ 2022-04-05 17:59 一点浩然气~ 阅读(439) 评论(0) 推荐(0) 编辑
摘要:接口 接口是一个或者多个方法签名的集合,任何类型 只要实现一个集合的全部方法,就表示这个类型实现了这个接口,并且无需在类型上显式的添加接口声明。 接口命名一般以 er结尾 接口只有方法签名,没有实现 接口没有数据字段 可以在一个接口中嵌入其它接口 一个类型可以实现多个接口 空接口没有方法签名,意味着 阅读全文
posted @ 2022-04-04 05:35 一点浩然气~ 阅读(86) 评论(0) 推荐(0) 编辑
摘要:Struct struct(结构体)就是用户自己定义的类型,一个结构体对应现实中的一个类型,和Java中的Class类相似,但是没有Class类那么复杂,没有多态,继承,封装。只保留了最基础的特性:组合。组合也只是形成最基本的复合类型。 初始化 自定义一个User类型,并且对这个User类型进行初始 阅读全文
posted @ 2022-03-29 15:35 一点浩然气~ 阅读(1022) 评论(0) 推荐(0) 编辑
摘要:Map map是一堆键值对的未排序集合,比如以身份证号作为唯一键来标识一个人的信息。 map是引用类型,键必须支持相等运算符(==,!=)类型,比如:int,string,float等内建类型,只含有内建类型的结构体可以作为key。值可以是任意类型,没有限制。 初始化 var m1 map[stri 阅读全文
posted @ 2022-03-27 02:18 一点浩然气~ 阅读(274) 评论(0) 推荐(0) 编辑
摘要:切片 切片并不是数组或者数组指针,切片只是对数组中连续片断的引用,这个片断可以是整个数组,也可以是由起始索引和终止索引标识的数组,所以切片是一个引用类型。 // 切片的数据结构 struct Slice{ byte* array; uintgo len; uintgo cap; } 切片是引用类型, 阅读全文
posted @ 2022-01-26 14:15 一点浩然气~ 阅读(974) 评论(0) 推荐(1) 编辑
摘要:数组 同一种类型的集合称之为数组,数组是一组已编号且长度固定的数据项序列,数组中可以是任意的相同类型,数组的长度必须是一个常量或常量表达式,数组的索引是从0开始,到len(Array) - 1 的长度,数组的长度必须在声明时就固定下来。在Go语言中,类型控制的是非常严格的,比如:[2]int 和 [ 阅读全文
posted @ 2022-01-25 15:09 一点浩然气~ 阅读(1375) 评论(0) 推荐(0) 编辑
摘要:匿名函数 匿名函数就是一个没有名字的函数,当我们在一个函数内部重复调用一段代码, 并且这段代码不想被别的函数使用,我们就可以定义一个匿名函数,或者在一段代码需要并发的时候使用匿名函数。 例如: func main() { f := func() { fmt.Println("hello,world! 阅读全文
posted @ 2022-01-25 15:08 一点浩然气~ 阅读(279) 评论(0) 推荐(0) 编辑
摘要:函数 函数是go语言最基本的单位,每一个程序都包含着很多函数,编写多个函数的主要目的是将一个需要很多行代码的复杂问题分解决为一系列简单的问题,通过解决简单的问题,最终解决这个复杂的问题。 “不要重造轮子”,相信你已经听过很多这样的话,这里的轮子指的就是代码中的 函数 或者 方法,一个好的程序一定非常 阅读全文
posted @ 2022-01-24 10:32 一点浩然气~ 阅读(317) 评论(0) 推荐(0) 编辑
摘要:无条件跳转语句 goto 后接一个标签,这个标签的意义是告诉 Go程序下一步要执行哪里的代码。所以这个标签如何放置,放置在哪里,是 goto 里最需要注意的。 简单示例 import "fmt" func main() { i := 0 FLAG: fmt.Println(i) i++ if i = 阅读全文
posted @ 2022-01-23 02:20 一点浩然气~ 阅读(302) 评论(0) 推荐(0) 编辑
摘要:for 循环 循环在所有语句最基础的结构,在Go语言中也不例外,但是在Go语言中,只有一种循环结果,没有 do-while 结构的循环,while 结构的循环被 for {} 代替。 跟据条件判断的 for 循环 无初始化 func main() { i := 1 for i < 5 { i++ f 阅读全文
posted @ 2022-01-23 02:20 一点浩然气~ 阅读(199) 评论(0) 推荐(0) 编辑
摘要:Switch-case switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。 switch 分支表达式可以是任意类型,不限于常量。可省略 break,默认自动终止。 Switch 语句 Go 语言中的 switch 结构使用上更加灵活。它 阅读全文
posted @ 2022-01-12 00:58 一点浩然气~ 阅读(1363) 评论(0) 推荐(1) 编辑
摘要:if-else 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。 if-esle结构模型: if 条件语句 { // 条件语句为 true 时执行 } else { // 条件语句为 false 时执行 阅读全文
posted @ 2022-01-12 00:58 一点浩然气~ 阅读(58) 评论(0) 推荐(0) 编辑
摘要:运算符 Go 语言的内置运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 | 运算符 | 描述 | | | | | + | 相加 | | - | 相减 | | * | 相乘 | | / | 相除 | | % | 求余 | 关系运算符 | 运算符 | 描述 | | | 阅读全文
posted @ 2022-01-11 12:19 一点浩然气~ 阅读(266) 评论(0) 推荐(0) 编辑
摘要:输出 输出到控制台 import "fmt" func main() { fmt.Println("Hello world!") } fmt.Println() 输出后会自动换行 无换行输出到控制台 import "fmt" func main() { fmt.Print("Hello world! 阅读全文
posted @ 2022-01-11 12:18 一点浩然气~ 阅读(645) 评论(0) 推荐(0) 编辑
摘要:类型转换 同类型之间的转换 Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。 import "fmt" func main() { var i int = 33 var i64 int64 i64 = int64(i) fmt.Println(i, i6 阅读全文
posted @ 2022-01-10 01:50 一点浩然气~ 阅读(881) 评论(0) 推荐(0) 编辑
摘要:基本类型 虽然从底层而言,所有的数据都是由比特组成,但计算机一般操作的是固定大小的数,如整数、浮点数、比特数组、内存地址等。进一步将这些数组织在一起,就可表达更多的对象,例如数据包、像素点、诗歌,甚至其他任何对象。Go语言提供了丰富的数据组织形式,这依赖于Go语言内置的数据类型。这些内置的数据类型, 阅读全文
posted @ 2022-01-10 00:52 一点浩然气~ 阅读(224) 评论(0) 推荐(0) 编辑
摘要:常量 定义 常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量使用一个名称来绑定一块内存地址,该内存地址中存放的数据类型由定义常量时指定的类型来决定,并且该内存地址里面存放的值是不可以被改变的, Go语言中的常量分为:布尔型、字符串类型、数值型。 常量一般存储在程序的只读段里。 字面常量 阅读全文
posted @ 2022-01-09 02:56 一点浩然气~ 阅读(328) 评论(0) 推荐(0) 编辑
摘要:变量 变量的定义 变量是几乎所有的编程语言中最基本的组成元素。从根本上来说,变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。 在Go语言中,变量和其它的C语言系的语言都是不同的,看下面的声明就知道了。 变量的声明 Go语 阅读全文
posted @ 2022-01-09 01:04 一点浩然气~ 阅读(52) 评论(0) 推荐(0) 编辑
摘要:开始第一个GO程序 创建文件 在GOPATH目录下面,创建一个以 .go 结尾的文件。 文件内容 在 hello.go 文件里面编写以下代码,编码格式是UTF-8 package main import "fmt" func main(){ fmt.Println("Hellow World!") 阅读全文
posted @ 2022-01-08 21:28 一点浩然气~ 阅读(77) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示