自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Golang学习中遇到的问题

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

2019-03-12 10:39:07 569

原创 Golang 选项模式(Option模式)

Golang 选项模式(Option模式)一种用于golang函数参数优雅传递的设计模式

2019-11-28 17:22:06 10980 4

原创 Golang踩坑——判断map中是否有key

最近在实习,下班回去十点多了,再加上比较懒,快有两个月没写东西了。今天在开发一个模块的时候是接着上一个人的写的,好不容易各种配置写好了开始跑,发现他踩了一个很容易踩的坑。把bug抽出来单独写了个文件。package mainimport ( "log")type agent struct { id int str string}var m map[int]*age...

2019-08-08 17:34:20 5084

原创 Golang如何操作Mysql——GO DATABASE/SQL Tutorial解读(下)

Lazyboy果然又lazy了,一周没写东西。GO DATABASE/SQL TutorialHandling Errors几乎所有对 database/sql类型的操作都会有一个error作为返回值的最后一个值。我们应该每次都要检查错误,不要忽略掉。有的地方的错误行为比较特殊,我们需要了解一些额外的东西。Errors From Iterating Resultsets...

2019-06-15 12:37:30 542

原创 Golang如何操作Mysql——GO DATABASE/SQL Tutorial解读(上)

golang操作mysql在我看来还是挺舒服的,但是其中的细枝末节还是需要摸摸清楚,正好看到了这个tutorial就仔细的看一遍,顺便做个记录。GO DATABASE/SQL TutorialOverview要在Go中访问数据库,请使用sql.DB. 您可以使用此类型来创建语句和事务,执行查询以及获取结果。sql.DB不是数据库连接。,它也没有映射到任何特定的数据库软件的“数据...

2019-06-01 17:54:45 635

原创 Deepin系统安装docker流程

Deepin系统安装docker的过程因为周末重新装了一遍deepin系统,所以又要重新配置环境。昨天晚上一边吃鸡一边把vscode相关的东西装完了。今天要装docker的时候发现忘了怎么装了-_- 重新过一遍留个底子。Step1. 检查之前是否安装过旧版本docker,有就卸掉。比如我这个就没有,所以提示白忙活一趟。Step2. 我们终于可以开始安装了,但是有了新的问题。我们...

2019-05-27 21:27:54 1826

原创 Golang标准库学习——strconv

package strconvimport "strconv"strconv包实现了基本数据类型和其字符串表示的相互转换。之前写惯了C++,to_string()之类的写惯了,现在换成golang了好几次直接顺手atoi然后报错。不习惯规不习惯,总的来说把方法放到包里这个想法还是很ok的。 strconv.Itoa()和strconv.Atoi()Itoa实现了in...

2019-05-20 19:19:06 1697

原创 Golang标准库学习——sort

package sortimport "sort"sort包中包含的文件打开sort包我们能看到下面这些文件这里先看最关键的sort.go。sort.gosort文件中一开始就是最关键的Interface接口,一个满足sort.Interface接口的类型可以被sort包的函数进行排序。type Interface interface { Len() int...

2019-05-15 23:37:20 330

原创 Hyperledger Fabric官方文档——Key Concepts——Blockchain network

这部分比较详细的描述了Fabric网络的构造,和如何一点点把这个网络拼凑起来的。每个必备的组织都有提到,具体细节还会在后面的章节中细说,这里用了许多图,很形象的解释了网络。原文地址:Hyperledger Fabric 官方文档Blockchain network 注意:本教程描述了一个使用上一个生命周期过程的网络,其中一个链代码在一个通道上实例化。本主题将更新以反映在2.0...

2019-05-13 19:41:21 604

原创 Hyperledger Fabric官方文档——Key Concepts——Hyperledger Fabric Model

这部分算是对Fabric一些针对企业的优势做了简单的介绍。原文地址:Hyperledger Fabric官方文档Hyperledger Fabric Model本节概述了编入Hyperledger Fabric的关键设计特性,实现了对全面但可定制的企业区块链解决方案的承诺:Assets—资产定义为可以通过网络交换几乎所有具有货币价值的东西,从全食品到古董车再到货币期货。Cha...

2019-05-06 19:27:40 602

原创 Hyperledger Fabric官方文档——Key Concepts——Hyperledger Fabric Functionalities

这部分没什么好说的。原文地址:Hyperledger Fabric 官方文档 Hyperledger Fabric FunctionalitiesHyperledger Fabric是分布式账本技术(DLT)的一种实现,它在模块化的区块链体系结构中提供企业就绪的网络安全性、可扩展性、机密性和性能。Hyperledger Fabric提供以下区块链网络功能:Identity ma...

2019-05-06 19:15:45 340

原创 Hyperledger Fabric官方文档——Key Concepts——Introduction

这一部分是简单的介绍,对一些fabric的基础概念进行解释。原文地址:Hyperledger Fabric 官方文档 Key Concepts——IntroductionIntroductionHyperledger Fabric是一个分布式账本解决方案平台,由模块化架构支撑,提供高度机密性、弹性、灵活性和可扩展性。它旨在支持不同组件的可插拔实现,并适应经济生态系统中存在的复杂性...

2019-05-05 18:02:58 412

原创 Hyperledger Fabric官方文档——What’s new in the v2.0 Alpha

这一部分主要讲了2.0alpha版本有什么新东西。第一点,把链码的生命周期做了一定的修改,出现了链码的准入机制,当然了alpha版,功能还没稳定。第二点,出现了FabToken,之前一直在说联盟链没有激励层,我们不玩货币,怎么怎么着的。不过有些时候没有一般等价物确实会限制应用changjing原文地址:Hyperledger Fabric 官方文档What’s new in the v2...

2019-04-25 19:52:17 1778

原创 Hyperledger Fabric官方文档——Introduction

研究生一直在折腾区块链这方面的东西,翻来覆去感觉Hyperledger Fabric是个挺有前景的,,,怎么说呢,方向吧。自己脑子里想的东西全让它实现了,又觉得难过又觉得开心。超级账本值得学习的地方有很多,又打算把官方文档翻出来读一遍。因为英语六级连五百都没有,所以还是决定把文档转成中文的看,大部分是百度google翻译,语句不通我也尽量调整了,包括一些名词翻译之类的尽量改过来,就形成了下面这篇有...

2019-04-25 19:39:52 10627

原创 Leetcode1032.字符流 golang实现——复习字典树

1032.字符流按下述要求实现 StreamChecker 类:StreamChecker(words):构造函数,用给定的字词初始化数据结构。 query(letter):如果存在某些 k >= 1,可以用查询的最后 k个字符(按从旧到新顺序,包括刚刚查询的字母)拼写出给定字词表中的某一字词时,返回 true。否则,返回 false。treamChecker stream...

2019-04-22 23:02:12 565

原创 面试相关——我今天要把死锁弄清楚

死锁死锁是指由于两个或多个进程(线程同样)互相持有对方所需要的资源,导致这些线程处于等待状态(阻塞现象),没有外力干扰的情况下无法继续执行。互相等待对方释放资源,产生死锁。产生死锁的必要条件(4个)1. 资源互斥条件: 进程对于所分配到的资源具有排他性,一个资源只能由一个进程占用,知道该进程释放该资源。2. 请求保持条件: 进程会请求所有需要的资源,如果过程中因为缺少资源而阻塞,已...

2019-04-22 19:43:15 359

原创 Golang中 goroutine执行速度的问题

突然想到了之前一直没留意的for循环中开goroutine的执行顺序问题,就找了段代码试了试,试了几次后发现几个有意思的地方,我暂时没有精力往更深处挖掘,希望有golang大神能简单说一说这几个地方是怎么回事。代码:package main import "fmt"func Count(ch chan int) { fmt.Println("Count doing") c...

2019-04-14 13:55:05 808

原创 [编程题] 将满二叉树转换为求和树

给满出二叉树,编写算法将其转化为求和树什么是求和树:二叉树的求和树, 是一颗同样结构的二叉树,其树中的每个节点将包含原始树中的左子树和右子树的和。二叉树: 10 / \ -2 6 / \ / \ 8 -4 ...

2019-04-12 10:56:14 1495

原创 Golang标准库学习——strings(未完)

Package stringsimport "strings"strings包实现了用于操作字符串的简单函数。一、Contains、ContainsAny、ContainsRune// 判断s是否包含substrfunc Contains(s, substr string) bool { return Index(s, substr) >= 0}// 判断s是否...

2019-04-08 22:54:21 734

原创 Leetcode学习之路 —— Golang实现

由于之前一直在用C++,所以leetcode的题也是用C++做的,现在对golang越来越感兴趣,所以就打算用golang来做。其实leetcode中有一些题很不适合用Golang来做,同样的做法,因为两种语言数据结构底层实现不同,与C++比起来golang会麻烦很多很多。但是在有些时候还有一些优势,不管怎么样,做题就是锻炼思维,明白怎么做,能实现出来就好了。https://github.co...

2019-04-02 21:24:19 1707

原创 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 499

原创 Redis基本操作

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

2019-03-26 16:34:18 429

原创 Redis基础知识

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

2019-03-26 15:29:17 221

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

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

2019-03-25 22:07:12 570

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

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

2019-03-24 15:07:06 582

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

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

2019-03-18 21:54:55 229

原创 Docker学习总结

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

2019-03-16 20:30:03 470

原创 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 1393

原创 Golang标准库学习—unsafe

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

2019-03-15 17:35:57 370

原创 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 203

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

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

2019-03-12 10:54:24 295

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

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

2019-03-11 22:15:14 4704

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

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

2019-03-07 21:20:17 598

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

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

2019-03-06 22:09:11 731

原创 Go语言实现快速选择

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

2019-03-06 21:31:20 495

原创 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 736

原创 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 493

原创 快速排序的三种实现方法 (C++)

快速排序的中心思想       快速排序利用的是分治思想,将一个大数组的排序划分为多个小数组的排序,最后进行合并便是排序的结果。      首先,需要从数组中选择一个主元,通常为数组的第一个元素或最后一个元素(好操作)。接下来的工作就是要将数组中的其他元素与主元进行对比,小于主元的元素放在主元的左边,大于主元的元素放在主元的右边。      例如有数组 A[begin...end] 经过上述步骤后...

2018-05-08 18:57:57 1519

空空如也

空空如也

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

TA关注的人

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