随笔分类 - Golang
摘要:本文主要内容包括: 1, 本文问题的由来 2, 答案 3, 解答 4, 安利两个网站 有小伙伴问Golang中为什么不使用this和self呢? 这个问题是这么出现的。有位熟练使用js的小伙伴,在和我讨论Golang的函数接收者的时候,面对这个代码: 说到:嗯,和js里的self是一个道理嘛,我们j
阅读全文
摘要:在Golang里,不支持函数重载,那么带来了一个问题。怎么创建多个可选参数的构造构造函数? 通常我们的构造函数时这样子的: 1 type Student struct { 2 Name string 3 } 4 5 func NewStudent (name string) *Student{ 6
阅读全文
摘要:大家或多或少的接触过了channel 了,我今天想学一下channel的数据结构。 我有的时候喜欢从一个对象提供的公共接口/功能来猜测这个对象的数据结构,那么今天我们来猜一猜channel。 1,channel可以存储数据,而且是先进先出,所以我猜测其中包含一个数组或者链表之类的用来保存数据。 2,
阅读全文
摘要:最近了解了一些关于go failpoint的信息,现在想给大家分享出来。 FailPiont 是用来在自动化测试中模拟故障的 自动化测试中,经常需要模拟出一些故障情况,然后来测试我们的程序在这种故障情况下是否能按照我们的想法正常执行。一些故障比较容易的被测试代码模拟,但是有一些就相对困难,比如断网了
阅读全文
摘要:GIN是golang的一个web 框架,它拥有很高的性能。 安装 $ go get -u github.com/gin-gonic/gin 代码中引入 import "github.com/gin-gonic/gin" 快速使用 1 package main 2 3 import "github.c
阅读全文
摘要:Go中没有class的概念。Go 语言中使用组合实现对象特性的描述。对象的内部使用结构体内嵌组合对象应该具有的特性,对外通过接口暴露能使用的特性。Go 语言的接口设计是非侵入式的,接口不知道接口被哪些类型实现。而实现不用指明具体实现哪一个接口。编译时时编译器会指明使用哪个类型实现哪个接口。 只有让接
阅读全文
摘要:List的接口 从这些接口我们可以看到Go的list应该是一个双向链表,不然InsertBefore这种操作应该不会放出来。 然后我们再从源码看看List的结构 从这里证实了上面的猜想,这是一个双向链表 List的使用 10-14行往list写入1,2,3,4 16行遍历打印list 21-16行打
阅读全文
摘要:由于map在gorountine 上不是安全的,所以在大量并发读写的时候,会出现错误。 在1.9版的时候golang推出了sync.Map. sync.Map 通过阅读源码我们发现sync.Map是通过冗余的两个数据结构(read、dirty),实现性能的提升。 为了提升性能,load、delete
阅读全文
摘要:map和其他语言的hashmap是一样的,是一个kv的数据集合,是按照哈希算法得到k的一个整数,将v存到一个数组的k位。
阅读全文
摘要:之前提到了把一个切片追加到另外一个切片时使用到了... 今天我们好好研究一下这三个点,博客写着写着又成了,回字有四种写法 ...第一种用法,可变长的参数 第9行代码定义了一个Sum函数,使用了一个可变长的参数numbers。我们在调用的时候,可以传入任意个指定类型的参数。 ...第二种用法,使用sl
阅读全文
摘要:数组 同其他语言一样,数组是一些相同类型的元素的集合。数组声明 数组的类型为 n[T],其中 n 表示数组中元素的个数,T 表示数组中元素的类型。数组元素的个数 n 也是数组类型的一部分 这个代码的运行结果是:[1 3 4 5 6] 如果没有给所有的元素赋值,那么后面的元素会被赋予默认值。 在声明数
阅读全文

浙公网安备 33010602011771号