使用Goland IDE go mod 方式构建项目

不管学习什么编程语言一开始都会经历的四步开发工具安装IDE安装设置 依赖/包 国内镜像项目构建工具,管理依赖/包一、Golang 开发工具安装https://golang.org/ 官网(需要各自手段)https://github.com/golang/go github地址http://docscn.studygolang.com/ golang中文网二、Goland IDE安装https://www.jetbrains.com/zh-...三、设置 依赖/包 国内镜像常用镜像地址:阿里云: ...阅读全文

Segmentfault 2020-10-26 08:32:38 阿壮Jonsson

Golang 基础整理 这一篇就够了

第一个golang程序package main import "fmt" func main() { fmt.Println("hello golang") }基本数据类型布尔型( true 或者 false)数字类型( 整型 int 和 浮点型 float32、float64 )字符串类型( 字符串就是一串固定长度的字符连接起来的字符序列 )派生类型:指针类型(Pointer)数组类型结构化类型(struct)Channel 类型函数类型切片类型接口类型(interface)Map 类型数字类...阅读全文

Segmentfault 2020-10-26 08:32:37 阿壮Jonsson

【Go基础】字符类型

rune类型 Go语言的字符有以下两种: 一种是 uint8 类型,或者叫 byte 型,代表了 ASCII 码的一个字符。 另一种是 rune 类型,代表一个 UTF-8 字符,当需要处理中文、日文或者其他复合字符时,则需要用到 rune 类型。rune 类型等价于 int32 类型。 byte 类型是 uint8 的别名,对于只占用 1 个字节的传统 ASCII 编码的字符来说,完全没有问题,例如 var ch byte = 'A',字符使用单引号括起来。 Go语言同样支持 Unicode(...阅读全文

简书 2020-10-25 16:32:38 abboo

Golang中panic与recover的实现原理

今天我们讲讲golang中panic异常,以及recover对异常的捕获,由于panic、recover、defer之间非常亲密,所以今天就放在一起讲解,这里会涉及到一些defer的知识,有兴趣可以看我的另一篇关于defer的文章 Golang中defer的实现原理. Panic异常 Go的类型系统会在编译时捕获很多错误,但有些错误只能在运行时检查,如数组访问越界、 空指针引用等。这些运行时错误会引起painc异常。 一般而言,当panic异常发生时,程序会中断运行,并立即执行在该gorouti...阅读全文

简书 2020-10-25 11:32:39 书生也爱羊

Golang标准库——unsafe

unsafe unsafe包提供了一些跳过go语言类型安全限制的操作。 type ArbitraryType type ArbitraryType int ArbitraryType在本文档里表示任意一种类型,但并非一个实际存在与unsafe包的类型。 type Pointer type Pointer *ArbitraryType Pointer类型用于表示任意类型的指针。有4个特殊的只能用于Pointer类型的操作: 1) 任意类型的指针可以转换为一个Pointer类型值 2) 一个Poin...阅读全文

简书 2020-10-25 02:32:39 DevilRoshan

编程语言的力量

也许正是学会了八卦才让智人击败了其他人种 最早的人类是从大约250万年前的东非开始演化,祖先是一种更早的猿属“南方古猿”。他们一部分人离开家园踏上旅途,足迹遍布北非、欧洲和亚洲,逐渐开始分化出不同的特征,以适应不同地域的环境。在那样一个史前时代,他们又是如何团结在一起克服困难维持种族的生存呢?我想正是语言的产生,让他们有了高效的机动能力,也正是语言的产生,让我们的祖先开始叽叽喳喳的八卦族内族外的事情,信息的获取由此开始,人类文明也借助语言开始往高阶的方向发展起来。 德国曾出版过一本语言工具手册—...阅读全文

简书 2020-10-25 02:32:38 果仁不仁

Go 协程堆栈设计进化之旅

- 后端早读课翻译计划 第四篇- - 翻译自: a-journey-with-go 欢迎关注微信公众号: 后端早读课 本文详细讲述了 Golang 中,堆栈设计理念以及演变过程。描述了从 Segment Stack 到 Contiguous Stack 、初始堆栈大小从 8Kb 到 2Kb 的原因。 Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee Fr...阅读全文

简书 2020-10-24 21:32:39 人类观察所主任

【Golang】context.Context解析

最近听了一位同事的分享,他说如果一个人不能把它所研究的项目/概念用十分简单的话表述清楚,那么就说明他并没有真正理解这个项目。然后他拿物理中粒子的自旋进行举例,有人向教授请教相关概念,教授说:我需要思考一下如何用浅显的话进行表述。稍许之后,教授说:很抱歉,可能我只能用非常复杂的公式和概念向你解释了。这说明了可能人类对于这一现象的本质并没有理解。 结合我的上一篇文章 最近的一些感悟 - 体系的力量 ,这更加说明了我们在学习的时候其实就是拨开繁杂的迷雾,去窥探一个概念、一个项目、一个体系它最核心的本质...阅读全文

简书 2020-10-24 20:32:38 千杉沐雪

牛皮了!世界级架构师,图解面向对象编程,小学生都能看得懂

何为面向对象编程面向对象编程(Object-oriented Programming,缩写:OOP)是软件工程中一种具有对象概念的编程范式(Programming Paradigm),同时也是一种程序开发的抽象方针,与之对应的编程范式还有:函数式编程(Functional Programming)、过程式编程(Procedural Programming)、响应式编程(Reactive Programming)等。随着计算机科学的发展,面向对象也一直在扩展,其实面向对象只是一种编程范例,或者是一...阅读全文

简书 2020-10-24 17:32:50 用嘴写代码

Linux系统调用详解(实现机制分析)

系统调用概述计算机系统的各种硬件资源是有限的,在现代多任务操作系统上同时运行的多个进程都需要访问这些资源,为了更好的管理这些资源进程是不允许直接操作的,所有对这些资源的访问都必须有操作系统控制。也就是说操作系统是使用这些资源的唯一入口,而这个入口就是操作系统提供的系统调用(System Call)。在linux中系统调用是用户空间访问内核的唯一手段,除异常和陷入外,他们是内核唯一的合法入口。一般情况下应用程序通过应用编程接口API,而不是直接通过系统调用来编程。在Unix世界,最流行的API是基...阅读全文

简书 2020-10-24 16:32:46 linux大本营

Go | Go 使用 consul 做服务发现

系列文章目录@TOC前言前面一章讲了微服务的一些优点和缺点,那如何做到一、目标二、使用步骤1. 安装 consul我们可以直接使用官方提供的二进制文件来进行安装部署,其官网地址为 https://www.consul.io/downloads下载后为可执行文件,在我们开发试验过程中,可以直接使用 consul agent -dev 命令来启动一个单节点的 consul在启动的打印日志中可以看到 agent: Started HTTP server on 127.0.0.1:8500 (tcp),...阅读全文

Segmentfault 2020-10-26 08:32:37 双鬼带单

gitea和golang组合实现hook自动化部署代码

gitea和golang组合实现hook自动化部署代码背景目前git代码仓库develop分支的代码要经常更新到测试服务器,使用传统的FTP上传代码太费力,使用git pull手动拉取分支,也不够放心。现在使用git中的hook来进行自动化部署代码。思路git服务&hook配置git服务使用的是gitea。其中的hook配置如下ps:没用gitlab实在是因为它内存占用太大golang gin实现的web服务用到两个核心类库go-sh 执行Linux命令使用go-shgo-simplejson ...阅读全文

Segmentfault 2020-10-26 08:32:37 SmallForest

pprof接口隐藏/认证

pprof是golang提供的性能分析工具,这里就不过多介绍了。 使用方式很简单,导入pprof包即可 import _ "net/http/pprof" pprof.go源文件init函数会初始化性能监控接口 func init() { http.HandleFunc("/debug/pprof/", Index) http.HandleFunc("/debug/pprof/cmdline", Cmdline) http.HandleFunc("/debug/pprof/profile", P...阅读全文

简书 2020-10-24 10:32:39 写个代码容易么

LeetCode(3) 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例**输入:** "abcabcbb" **输出:** 3 **解释:** 因为无重复字符的最长子串是 "abc",所以其长度为 3。官方解法:func lengthOfLongestSubstring(s string) int { // 哈希集合,记录每个字符是否出现过 m := map[byte]int{} n := len(s) // 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动 rk, ans...阅读全文

Segmentfault 2020-10-26 08:32:36 xbdyhh

天道酬勤,T9晋级答辩通过

2020年9月4日答辩结束,9月26日答辩结果公布:成功晋级!回想这一路的历程,颇有收获,这里把简要的过程记录如下,希望更多同学看了能有所收获:第一轮过ppt项目主要突出两点:业务价值 + 技术挑战;第二轮过ppt答辩ppt不要求全,但求精,把能充分证明自己能力的部分充分提现出来即可;重视一些运营类的数据,继续记住的数据指标用表哥列出来!第三轮过ppt晚上按照“提出问题-分析问题-解决问题-效果展示”的思路,重新整理了一版思维导图,思路清晰了不少!第四轮过ppt重点关注指标的方面:指标是多少?为...阅读全文

Go语言中文网 2020-10-24 09:28:52 leidachui