自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Golang学习中遇到的问题

不断踩坑,持续更新。这里包含两个部分亲身经历:自己遇到的问题,包括踩的坑,模糊的知识点,不能瞬间想到的问题等等。 他人经验:看他人的博文发现的问题,会收在第二部分中,如果有一天想通了会放到第一部分。亲身经历:切片初始化 slice := make([]type, len) 用make创造切记len参数不能省略 切片append添加的是单个元素不是切片 ...

2019-03-12 10:39:07 605

原创 Golang学习——使用Redis

因为之前做的一个小网盘想实现一个分片上传,就尝试用了redis,对redis有了一些了解,具体可见:Redis基础知识:https://blog.csdn.net/Lazyboy_/article/details/88819755Redis基本操作:https://blog.csdn.net/Lazyboy_/article/details/88821948现在要使用go语言对redi...

2019-03-26 19:20:34 544

原创 Redis基本操作

上一个博文讲了一部分基础知识,这篇博文就说一说redis包含的数据类型和一些相关操作。Redis包含了五种数据类型:string、list、set、hash、sort set。stringstring的value可以是字符串、整数或浮点,统称为元素 。能够对字符串操作、对整数类型加减。string的value最多容纳512M,包括赋值、取值、删除、增减和一些扩展操作Set ...

2019-03-26 16:34:18 530

原创 Redis基础知识

之前有用到过redis,但是从来没有系统整理过关于redis的东西,紧要关头了还得重新回顾一遍。Redis是NoSQL,是一种基于key-value的非关系型数据库。由C语言编写(所以想用得安装GCC)。Redis的相关配置通过redis.conf进行设置,不同的系统存在不同的位置,我使用的是deepin,存储在/etc/redis中Redis特征Redis是远程的,有客户端和服...

2019-03-26 15:29:17 243

原创 Golang标准库学习——sync/atomic

package atomicimport "sync/atomic"atomic包提供了底层的原子级内存操作,对于同步算法的实现很有用。这些函数必须谨慎地保证正确使用。除了某些特殊的底层应用,使用通道或者sync包的函数/类型实现同步更好。应通过通信来共享内存,而不通过共享内存实现通信。相比于使用锁,在条件允许的情况下,使用原子操作的效率会更高atomic包能对一些类型...

2019-03-25 22:07:12 621

原创 Golang学习——struct的一些事情

Golang中的struct还是有点意思的,相比于C++中的类型要好用很多。Golang的数据成员放到一个struct中,又为该struct配上相应的方法,这就形成了封装数据成员和方法的class。相比于C++,Golang没有继承,而是支持嵌套,以组合的形式完成相同的功能,这就使Golang的逻辑非常清晰。遇到的问题最近在写程序时碰到了一个小问题,让我困惑了一下。这里只是想判断...

2019-03-24 15:07:06 628

原创 Golang —— Leetcode 1015. Numbers With Repeated Digits

题意就是给出一个N,找到(0,N]范围内有多少个最少有一位重复的数字。比如121,1454符合要求,123不符合。思路: 这种问题的第一步非常关键。关于重复的题大多都要反着做,让我们找有重复的,那我们把不重复的找出来再减去就是重复的。这时我们考虑一个数字比如1942,我们把它分为两半,1000以下和1000以上。①1000以下:这种情况非常简单,排列组合,找到个十百三个位数字不同有...

2019-03-18 21:54:55 266

原创 Docker学习总结

前言Docker之前用过几次,现在需要重新拿出来巩固一遍了,因为经验不足没有用太多,所以Docker相关暂时就放在这一篇文章里吧。系统是Deepin,其实和ubuntu很像。使用过程中也有一些问题,有的解决了有的还没有,记录。目录 Docker基本操作 Docker相关知识 使用Docker遇到的问题 一、Docker基本命令这里只列出本人操作过的命令,和...

2019-03-16 20:30:03 485

原创 Golang—内存对齐

Golang是一种C家族的语言,关于内存对齐和C有大部分相通的地方。如果之前就对内存对齐有了解的话,很容易理解。先看一个例子吧package mainimport ( "fmt" "unsafe")type part struct { a bool b int32 c int8 d int64 e byte}func main() { part1 :=...

2019-03-15 18:42:15 1453

原创 Golang标准库学习—unsafe

Packge unsafeimport "unsafe"unsafe包提供了一些跳过go语言类型安全限制的操作。能够访问底层内存,使用unsafe函数可以提高访问对象的速度,但是这不是go语言推荐使用的,容易出现莫名其妙的问题,不利于扩展与维护。unsafe包中真正的代码只有五行type ArbitraryType inttype Pointer *ArbitraryType...

2019-03-15 17:35:57 414

原创 Golang — Leetcode. 1005-1008

Leetcode. 1005Maximize Sum Of Array After K Negations这道题看起来写的很乱,,,实际就是很乱。思路很简单,首先排序,负数个数大于K就翻转K个再累和,结束;K大于负数个数就先把所有负数转为整数后找最小的正数翻转(K-负数个数)次。注意边界问题。func largestSumAfterKNegations(A []int, K int)...

2019-03-15 10:46:08 253

原创 Golang — Leetcode 973. K Closest Points to Origin

题意就不说了,leetcode 上都有。这道题首先想到的是将距离算出来sort后取前K(好像这样也能过),后来又想到了前一阵子刚看的快速选择,经过选择挑好第K大的值时,K即是值也是索引,所以索引K前的便是前K个最小距离。相比于快排能够少排后半部分节省时间。刚开始想到这样做的时候直接上手就开始写了,当时用一个map存储距离(key)和点(value)的关系,但是发现距离重复的情况下会有覆盖的...

2019-03-12 10:54:24 343

原创 联盟链—Hyperledg Fabric架构简述

一直以来想再仔细的过一遍Hyperledger Fabric的基础知识,可惜自身太懒惰便一拖再拖,今天终于想起这件事,心里很惭愧,花了一段时间通过《区块链技术进阶与实战》这本书和网上一些资料对Fabric有了一个大致了解,略作记录,细节还需要之后再做补充。Hyperledger Fabric 是分布式账本技术的独特实现,v1.0版本具有以下特性:身份管理: Fabric是一个许可链网...

2019-03-11 22:15:14 4842

原创 Golang标准库学习—container/ring

container包中有三个数据结构:heap(堆)、list(链表)、ring(环)Package ringimport "container/ring"ring实现了环形链表的操作。环的尾部就是头部,所以每个元素实际上就可以代表自身的这个环。不需要像list一样保持list和element两个结构,只需要保持一个结构就可以。type Ring环形链表没有头尾;...

2019-03-07 21:20:17 647

原创 Golang标准库学习—container/heap

container包中有三个数据结构:heap(堆)、list(链表)、ring(环)Package heapimport "container/heap"heap包提供了对任意实现了heap.Interface接口的类型的堆操作。最小堆是具有“每个节点都是以其为根的子树中最小值”属性的树。最大堆相反。树的最小元素为其根元素,索引0的位置。最大堆相反。heap是常用的实...

2019-03-06 22:09:11 801

原创 Go语言实现快速选择

偶尔间看到一个问题:从海量数字中找到第k大的数脑子里蹦出来的第一个念头是堆,复杂度O(nlogk)。后来想想好像在某些情况下可以用快速选择的思想,能达到O(n)。快速选择的思想很简单,在快速排序的基础上实现,比如选择数字p为比较值,将一组数分为两半,我们将数字p的索引i与k比较就能知道第k个数字是在索引i的左边还是右边,还是恰好是i直接返回,接着只对包含k的那一边继续做相同过程就可以了。下...

2019-03-06 21:31:20 532

原创 Golang标准库学习—container/list

container包中有三个数据结构:heap(堆)、list(链表)、ring(环)Package listimport "container/list"list包实现了双向链表,要遍历一个链表:for e := l.Front(); e != nil; e = e.Next() { // do something with e.Value}type Eleme...

2019-03-05 18:28:51 795

原创 Go语言实现快速排序

快速排序原理不再赘述,以下是golang实现。其中,math/rand包中有个Perm方法:Perm returns, as a slice of n ints, a pseudo-random permutation of the integers [o,n).返回一个有n个元素的,[0,n)范围内整数的伪随机排列的切片func (r *Rand) Perm(n int) [...

2019-03-04 22:37:41 551

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除