3 slphahaha

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 14w+

VSCode提示:Do you what Code to open the external website ?

问题描述每次在vscode中跳转到三方库时候,弹出窗口提示,让人很心烦。例如,当准备跳入github.com/pingcan/tidb/util/logutil看源码内容,弹出以下窗口。解决方法command+shift+p进入设置项,搜索settings.json选择Preferences:Open Settings(JSON),添加一句语句:"editor.links":falseok,问题解决。...

2020-06-03 20:03:22

Golang之Sort包

​Go语言是一门非常简单优雅的语言,其源码更是其风格标杆。看源码,不仅能学习Go的设计哲学,了解如何调用库函数,同时帮助我们写出更优雅的go代码。Go源码位于GOROOT目录下的src中。本文学习1.14.1版本源码库的sort包。该包对外提供的主要功能是排序和搜索。其核心的函数分别是:sort.Sort()与sort.Search()。1. sort.Sort()函数定义如下func Sort(data Interface) { n := data.Len() quickSo

2020-05-20 21:38:12

写给Go新手的入门指南

1. Go 语言官方教程教程网址:http://tour.go-zh.org该指南提供了运行平台和示例代码,循序渐进地带你走进Go语言的世界。非常方便初学者学习Go的基础知识。2.常用书籍在Go语言的10年里,有非常多优秀的书籍。这里推荐两本适合初学者的书:《Go程序设计语言》、《The Go Programming Language》又名《Go语言圣经》。作为新手入门,啃一本就足够了。3.基础视频习惯看视频学习的小伙伴们,推荐无闻的《Go 编程基础》系列视频...

2020-05-17 16:37:26

正反向代理 Golang实现

正向代理隐藏了真实客户端向服务器发送请求,反向代理隐藏了真实服务器向客户端提供服务。正向代理:小王要结婚了,可是手上拿不出彩礼钱,他就找了好兄弟小张,小张同样没钱,但是小张认识思聪,于是小张从王思聪那里借到了20万交到了小王手上。对于思聪来说,他并不知道真正借钱的人是小王。常见例子:科学上网VPN反向代理:小王结婚买房,他找到贷款中介,贷款中介给了他50万。但中介找哪个资方出资50万,小王完全不知情。常见例子:Nginx反向代理服务器代理架构图如下所示...

2020-05-17 16:28:53

Go交叉编译

交叉编译是指在一个硬件平台生成另一个硬件平台的可执行文件。而Go提供了非常方便的交叉编译方式。如何编译Go交叉编译,涉及到几个环境变量的设置: GOARCH、GOOS和CGO_ENABLED。 GOARCH:编译目标平台的硬件体系架构(amd64, 386, arm, ppc64等)。 GOOS:编译目标平台上的操作系统(darwin, freebsd, linux, windows)。 CGO_ENABLED:代表是否开启CGO,1表示开启,0表示禁用。由于CGO不.

2020-05-17 14:52:11

Golang接口优雅断言

举例type Poultry interface { eat()}type Bird interface { Poultry drink()}type Chicken struct { name string}func (b Chicken) eat() { fmt.Printf("%s eat food!\n", b.name)}func (b Chick...

2020-04-15 18:05:47

Golang如何给import对象赋予新方法 (cannot define new methods on non-local type xxx)

举例:假如我从某库engine中得到该库中定义的对象Request,我现在想赋予它新的方法,采用以下方式是不被允许的。import ( "github.com/slpslpslp/crawler/engine")func (req *engine.Request) myselfMethod() {// do something}解决方法:1. 新类型type n...

2020-04-15 17:19:56

【译】Golang中的调度(3):并发编程 - Concurrency

序为了更好理解Go调度器的内在机制,我会以三个部分的内容分别进行阐述,链接如下:Golang中的调度(1):OS调度器 - OS Scheduler Golang中的调度(2):Go调度器 - Go Scheduler Golang中的调度(3):并发编程- Concurrency本部分内容主要讨论并发编程。引言当我遇到问题,尤其是新问题时,我并不知道是否适合使用并发解决。首...

2020-01-10 08:51:38

【译】Golang中的调度(2):Go调度器 - Go Scheduler

序为了更好理解Go调度器的内在机制,我会以三个部分的内容分别进行阐述,链接如下:Golang中的调度(1):OS调度器 - OS Scheduler Golang中的调度(2):Go调度器 - Go Scheduler Golang中的调度(3):并发- Concurrency本部分内容主要讨论Go调度器。引言在本系列文章的第一部分,我阐述了在OS调度器中各个方面的知识,这些...

2019-12-15 15:23:29

【译】Golang中的调度(1):OS调度器 - OS Scheduler

序为了更好理解Go调度器的内在机制,我会以三个部分的内容分别进行阐述,链接如下:Golang中的调度(1):OS调度器 - OS Scheduler Golang中的调度(2):Go调度器 - Go Scheduler Golang中的调度(3):并发- Concurrency本部分内容主要讨论操作系统层次的调度器工作机制。引言Go调度器能使你的多线程Go应用程序运行得更加有...

2019-12-12 19:47:39

Mac下取消brew install XXX的自动更新

在Mac下,Homebrew是一个很好的软件下载与管理平台。我们在下载某一个软件时,会用到brew install XXX的命令。但是每次安装,Homebrew都会自动更新,提示updating HomeBrew…,这严重增加了我们的等待时间。因此,需要取消其自动更新。临时取消方法:在终端输入export HOMEBREW_NO_AUTO_UPDATE=true长期生...

2019-10-25 08:41:17

Mac os下C/C++开发,找不到头文件

原因:由于Mac更新或者Xcode更新所至方法:终端执行命令:xcode-select --install如果可行,就可以了。如果报以下提示:xcode-select: error: command line tools are already installed, use "Software Update" to install updates其实意思就是Co...

2019-10-23 11:15:17

记阅读大型项目源代码心得

为什么要阅读源码要想成为一名出色的书法家,需要时常研究大师们的经典碑帖,然后练习、临摹,不断重复。那么想要成为一名优秀的程序员,我觉得也应该学习研究大牛写出来的代码。所幸有很多优秀的开源项目可以给我们学习。我在前两个月花了一些时间阅读了一些开源数据库源码,现将自己暂时的一些心得体会记录下来,有新的体会我会及时更新。如何阅读源码一、准备阶段下载源码毋庸置疑,要学习项目源码,前提是...

2019-10-19 16:20:35

源码安装PostgreSQL过程记录(Mac os,大体适用于linux,windows可做参考)

一、源码获取1.源码路径可从官网直接下载对应版本的代码,此为官网下载地址https://www.postgresql.org/ftp/source/,我采用的是此路径。2.可从gituhub仓库克隆下来,克隆命令为git clone git://git.postgresql.org/git/postgresql.git源码的目录(11.5版本)如下:二、requi...

2019-09-26 14:24:22

golang爬坑笔记之自问自答系列(10)——go并发爬虫项目(以蛋壳网为例)

Golang在语言层级为我们准备了天然的高并发支持,因此也写个项目练练其并发使用。正好有位朋友想抓蛋壳网租房数据,我就趁这个机会写一个go的并发版爬虫项目。详细代码可移步至我github:https://github.com/slpslpslp/crawler。话不多说,进入正题。项目结构整体项目包含在crawler下,包括:1.danke:目标网站。 f...

2019-09-15 09:14:41

golang爬坑笔记之自问自答系列(9)——go get被墙的问题

在编写go项目的过程中,往往会引入到外部的包。在github仓库有的,还能比较方便拉下来,但是往往很多go官方包是在golang.org的域名下,这是需要“有梯子”才能获取的。如果你未设置代理,你的go get xxx语句很可能会是这样:package golang.org/x/net: unrecognized import path "golang.org/x/net" (https fetc...

2019-09-14 08:05:00

golang爬坑笔记之自问自答系列(8)——关于defer

介绍defer是Golang中的一大特色,它被称为“延迟函数调用”,关于defer的底层比较复杂,暂时还未深入分析。此篇未完待续,陆续增加。用法语法上,一个defer语句就是一个普通的函数或方法调用,在调用之前加上关键字defer。函数和参数表达式会在语句执行时求值,但是无论是正常情况下,执行return语句或者函数执行完毕,还是不正常的情况下,比如发生宕机,实际的调用推迟到包含d...

2019-09-10 14:43:38

golang爬坑笔记之自问自答系列(7)——为切片附加实用功能

我们知道,Python的list十分强大,其自带很多有用的方法,在Go中大多需要自己实现。下面,我为切片[]int实现大多数常用的功能。未完待续,想到实用的函数会继续添加。定义type slice []int功能函数Contain检查切片是否包含某元素itemfunc (s *slice) Contain(item int) bool{ for _,v :=ran...

2019-09-09 13:51:46

golang爬坑笔记之自问自答系列(6)——深度解析Golang中的切片Slice

每一门语言都有其独特的数据结构,和Python语言中的list一样,Slice在Golang的数据结构中有举足轻重的地位。作为一门语言的最重要的基本数据结构,理解其内在机理和设计思想至关重要。定义Slice(切片)表示一个拥有相同类型元素的可变长度的序列。它通常写成[]T,其中元素的类型都是T;它看起来像没有长度的Array(数组)类型。切片与数组Golang中的数组和切片是紧密关...

2019-09-07 15:59:27

golang爬坑笔记之自问自答系列(5)——切片赋值避免使用append()函数

代码:package mainimport ( "fmt" "time")func useAppend(n int) { var a []int for i :=0 ;i<n;i++{ a = append(a,i) }}func initGiveLen(n int) { var a = make([]int,n) for i:=0;i<n;i...

2019-09-04 16:32:45

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。