Mac vscode配置golang开发环境

本文适用于go version go1.15.2 darwin/amd64 下载 Go 因为Mac可以使用Homebrew来安装Go,所以直接执行以下命令来安装Go: brew install go 此时可能会卡在Updating Homebrew,可以通过切换中科大源来解决: // 替换brew.git: cd "$(brew --repo)" git remote set-url origin https://mirrors.ustc.edu.cn/brew.git // 替换homebre...阅读全文

简书 2020-11-30 12:32:38 omygad

3. Go依赖管理及go module使用

3.1 简介 为什么需要依赖管理: 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决? Go语言从v1.5开始开始引入vendor模式,如果项目目录下有vendor目录,那么go工具链会优先使用vendor内的包进行编译、测试等。 godep是一个通过vender模式实现的Go语言的第三方依赖管理工具,类似的还有由社区维护准官方包管理工具dep。 3.2 godep 管理工具...阅读全文

go语言双向链表及其常用方法的实现

目的 完善链表相关的概念,实现双向链表的常用方法。 1、双向链表的特点和初始化 1.1 双向链表的存储结构 存储结构 1.2 双向链表的特性 我觉得用下面这行代码最能够展示双向链表的特性 p->next->prior = p->prior->next = p 1.3 双向链表的结点 本文实现的双向链表结构如下 结点 1.4 双向链表的基本操作 本文主要实现了双向链表的以下操作 判断是否为空 获取链表长度 在头部插入元素 在尾部插入元素 删除指定位置元素 删除指定值的元素 查找是否包含指定值 查找...阅读全文

简书 2020-11-30 12:32:38 Zppj

Golang数据结构与算法系列:Skiplist跳跃表实现

跳跃表是一种有效的数据结构,它能够在n个元素的有序序列中实现O(log n)搜索复杂度和O(log n)插入复杂度。因此,它既是最佳的数组(便于搜索),同时也维护了一个类似链表的结构。通过维护子序列的链接层次结构,使得快速搜索成为可能,每个后续子序列跳过的元素比前一个子序列少(见下图)。 搜索通常从最稀疏的子序列开始(一般是自顶向下),直到找到两个连续的元素,一个小于或等于搜索目标的元素,另一个大于或等于搜索目标的元素。通过链接的层次结构,链接到这两个元素间的下一层子序列,然后在该子序列中继续搜...阅读全文

51CTO博客 2020-11-29 19:40:14 日常笔记

2020-11-29:手写代码:堆排序。

福哥答案2020-11-29: 1,先让整个数组都变成大根堆结构,建立堆的过程: 1)从上到下的方法,时间复杂度为O(NlogN)。 2)从下到上的方法,时间复杂度为O(N)。 2,把堆的最大值和堆末尾的值交换,然后减少堆的大小之后,再去调整堆,一直周而复始,时间复杂度为O(NlogN)。 3,堆的大小减小成0之后,排序完成。 golang代码如下: package class04 import ( "fmt" "testing" ) /* 堆排序 1,先让整个数组都变成大根堆结构,建立堆的过程...阅读全文

简书 2020-11-29 22:32:38 福大大架构师每日一题

go语言单链表及其常用方法的实现

目的 在刷算法题中经常遇到关于链表的操作,在使用go语言去操作链表时不熟悉其实现原理,目的是为了重温链表这一基础且关键的数据结构。 1、链表的特点和初始化 1.1、链表的特点 用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的) 1.2、结点 结点(node) 数据域 => 存储元素信息 指针域 => 存储结点的直接后继,也称作指针或链 首元结点 是指链表中存储的第一个数据元素的结点 头结点 是在首元结点之前附设的一个结点,其指针域指向首元结点(非必须) 头指针...阅读全文

简书 2020-11-29 21:32:45 Zppj

1. 安装Go及搭建Go开发环境

注意:Go语言1.14版本之后推荐使用go modules管理以来,也不再需要把代码写在GOPATH目录下了。无需手动配置环境变量,使用go mod 管理项目,项目可以在任意位置。 1.1 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 1.2 安装 1.2.1 Windows安装 将上一步选好的安装包下载到本地。双击下载好的文件,然后安装即可。(安装目录可自行选择) 安装完成后可以使用如...阅读全文

这是一个测试文档

这是一个测试文档, 修改一下 目测可以使用Typora进行编辑, 然后COPY到简书, 这样既可以享受Typora的快捷编辑, 又可以利用简书的在线同步与日记整理功能.完美. 这是一个小标题 我想试一下引用, 怎么感觉有点丑啊. 这是下一行 我就是粗体, 这是斜体, 这是粗体加上斜体, 这是粗体, haha, Typora是真的好用, 这是一个双引号, “哈哈”, “哈哈”, 哈哈“哈哈”, 这是一个单引号‘嘻嘻’, # 这是一个代码块 import datetime now = datetim...阅读全文

简书 2020-11-29 21:32:44 刘志远_143e

我写代码那些年--开始--自学之路

寻路准备。 决定转行IT后,接下来的事儿,就是学编程了,那时候,对计算机的使用,仅限于日常办公一类的。对于编程写代码,可以说是很迷茫,怎么搞?从哪里开始?如何下手?一头雾水。左思右想后,当时我想到了一种取巧的方式学习,我想:我不懂这个,就没必要瞎折腾,网上查也可能事倍功半,走没必要的弯路只是浪费时间,于是我就找了几个关系好的计算机学院的同学,让他们帮我出主意,该怎么学,推荐我一些书,我自己对着练。当时我让他们告诉我怎么学还不算完,还让他们帮我推荐一些书单,列出书的名字,出版社,作者。这样我比较容...阅读全文

简书 2020-11-29 21:32:44 风调雨顺_735b

分别用Python,Java,Golang,PHP实现Hello World,哪个更适合你

Python语言(只要一行,不带分号):print("Hello World")Java语言(需要五行,要带分号):public class test{ public static void main(String[] args) { System.out.println("Hello World"); }}Golang语言(五行,不带分号):package mainimport "fmt"func main() { fmt.Println("Hello World")}PHP语言(三行,带分号...阅读全文

简书 2020-11-29 21:32:44 1024小神

一文看懂 session 和 cookie

----------- cookie 大家应该都熟悉,比如说登录某些网站一段时间后,就要求你重新登录;再比如有的同学很喜欢玩爬虫技术,有时候网站就是可以拦截住你的爬虫,这些都和 cookie 有关。如果你明白了服务器后端对于 cookie 和 session 的处理逻辑,就可以解释这些现象,甚至钻一些空子无限白嫖,待我慢慢道来。 一、session 和 cookie 简介 cookie 的出现是因为 HTTP 是无状态的一种协议,换句话说,服务器记不住你,可能你每刷新一次网页,就要重新输入一次账...阅读全文

简书 2020-11-29 21:32:42 labuladong

一文带你入门 Golang

go 语言特点脚本化的语法,容易上手。静态类型+编译性,开发、运行效率都有保证函数式 & 面向对象 两种编程范式,原生支持并发编程支持,降低开发成本,维护成本,以及更好的兼容性,效率。劣势:语法糖没有 Python 和 Ruby 多。运行效率不及C,但已赶超C++,Java。第三方库不多,就是轮子少(喜欢造轮子的可以加入golang轮子大军)。安装官方: https://golang.org/国内官方站点: https://go-zh.org/Linuxhttp://golang.org/dl/...阅读全文

Segmentfault 2020-11-30 18:32:37 小白要生发

sync.Cond学习笔记

sync.Condgo/syncsync.Cond用于goroutine之间的协作,用于协程的挂起和唤醒。当多个协程之间协作时,有可能一个协程需要依赖别的协程完成后再进行某种操作,这时可依据管道进行通信,这对于两个协程之间是比较方便的。但若是多个协程依赖一个协程的完成后再进行某种操作,那么就可以使用sync.Cond来实现了;例子:package main import ( "fmt" "sync" "time" ) var locker = new(sync.Mutex) var cond =...阅读全文

Segmentfault 2020-11-30 18:32:37 byte

Golang error浅析

由于Golang的语言设计的原因,不管是不是愿意,每个golang开发者的几乎每一段代码都需要与error做缠斗。下面我就简单分析一下golang中的error相关。 error是什么? 首先需要明确的一点是,golang中对于error类型的定义是什么?不同于很多语言的exception机制,golang在语言层面经常需要显示的做错误处理。其实从本质上来讲,golang中的error就是一个接口: // The error built-in interface type is the conv...阅读全文

简书 2020-11-29 09:32:39 MontyOak