centos7安装GCC和golang

安装gcc Development Tools 包含 GCC 编译器以及一系列库文件,还有其他编译软件需要用到的工具 sudo yum group install "Development Tools" 安装golang 方法一:使用 yum 安装 yum install -y go 方法二:官方安装包安装,开箱即用 1.下载安装包 wget -c https://storage.googleapis.com/golang/go1.15.1.linux-amd64.tar.gz 2.解压到 /u...阅读全文

51CTO博客 2020-09-11 11:02:08 龙翔九天dl

Go语言入门总结(八)-并发编程

1.goroutine 在go语言里面实现并发很容易。 独立运行的任务被称为goroutine,goroutine不同于线程,它的运行表面上看似乎都是在同时运行,但是由于计算机通常只具有有限数量的处理单元,所以,从技术上来说,goroutine并不是真正的同时在运行。其实相当于是在一条时间轴上,go语言会分配时间,让他们轮流运行。至于运行顺序,那将是随机的。 启动goroutine就像调用函数一样简单,只需要在调用的前面加上go就可以了。 func main() { for i := 0;i <...阅读全文

简书 2020-09-12 01:32:36 洋葱er

GoLang下划线总结

今天在看 Gin 框架的时候,跟踪 Gin 在处理接口返回时,使用到了一个 render 包,查看代码的过程中,发现了这样的写法:// Render interface is to be implemented by JSON, XML, HTML, YAML and so on. type Render interface { // Render writes data with custom ContentType. Render(http.ResponseWriter) error // ...阅读全文

Segmentfault 2020-09-15 10:32:32 道道法

golang并发原理

MPG模型Go的调度器内部有四个重要的结构:M,P,G,Sched M指的是Machine,一个M直接关联了一个内核线程。由操作系统管理。 P指的是”processor”,代表了M所需的上下文环境,也是处理用户级代码逻辑的处理器。它负责衔接M和G的调度上下文,将等待执行的G与M对接。 G指的是Goroutine,其实本质上也是一种轻量级的线程。包括了调用栈,重要的调度信息,例如channel等。P的数量由环境变量中的GOMAXPROCS决定,通常来说它是和核心数对应,例如在4Core的服务器上回...阅读全文

Segmentfault 2020-09-14 21:32:32 byte

go语言通过命令方式生成可执行文件

安装go后,我们一般会设置好GOROOT和GOPATH环境变量,但是有时候因为实际工作中项目结构复杂,设置的GOPATH不能满足需要时,可以在cmd设置临时的GOPATH;很多IDE,比如IDEA也可以设置全局的GOPATH和临时的GOPATH,但是编译可执行文件可能有些复杂或者通过IDE编译或者运行会出现app.conf配置文件加载不到的情况,这个坑我遇到过。故通过命令的方式生成go的可执行文件。比如项目结构是这样: 由于依赖了github.com里的beego,所以要加github.com的...阅读全文

简书 2020-09-11 17:32:40 MO_ON_e503

浅读关于go语言的类属性大小写区别

最近在调试go程序,遇到一个神坑的问题,就是类属生的变量命名问题,后面才发现属性的首字母大小写表示的意义是不同的! go中根据首字母的大小写来确定可以访问的权限。无论是方法名、常量、变量名还是结构体的名称,如果首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用。可以粗暴的理解为首字母大写是公有的,首字母小写是私有的。类属性如果是小写开头,则其序列化会丢失属性对应的值,同时也无法进行Json解析。如以下代码:在tool里面创建以下两个结构体struct1及struct2,其中de...阅读全文

51CTO博客 2020-09-11 12:58:39 v824394795

【IT峰播】如何选择要入行的编程语言

想进入编程行业要做一名程序员,选择一门编程语言超级重要,直接会决定你未来的发展方向。 很多人会说,干嘛纠结一门语言,这些全学不香吗?小孩子才做选择。还真不行,要全学完再找工作,可能你的孩子都能打酱油了。一定要选择一门先进入企业大门,正所谓一招鲜吃遍天,而工作几年的老程序员都有几门语言护体。另外,企业招聘的工作岗位其实就是限定语言的,面试就是面特定一门语言的各种知识,概念,以及相关生态的解决方案。确定一门编程语言直接影响投简历时候的职位选择。所以我就和你说说如何选择你的第一门编程语言。都说按兴趣爱...阅读全文

简书 2020-09-11 13:32:38 lmonkey_01

SystemUI-mk转bp

1. 基本概念介绍 自Android N开始,Google开始用Ninja来替代Makefile编译系统。编译时,会先把Android.mk通过kati转换成.ninja文件,然后使用ninja命令进行编译。 Android.bp是替代Android.mk的配置文件,在Android O默认开启相关支持。编译时,由Soong解析转换成.ninja文件。 Soong是为Android编译设计的工具,Blueprint和Soong都是由Golang写的项目,Blueprint解析文件的格式,而Soo...阅读全文

简书 2020-09-11 13:32:37 小马一枝刀

2020全新升级版-Google资深工程师深度讲解Go语言【学习分享】

2020全新升级版-Google资深工程师深度讲解Go语言 点击下载:2020全新升级版-Google资深工程师深度讲解Go语言 Go作为专门为并发和大数据设计的语言,在编程界占据越来越重要的地位!不论是c/c++,php,java,重构首选语言就是Go~本次课程特邀谷歌资深工程师,将Go语言使用经验总结归纳,从Go语言基本语法到函数式编程、并发编程,最后构建分布式爬虫系统,步步深入,带你快速掌握Go语言! 适合人群及技术储备要求如果你已经掌握了一门编程语言,想转型Go语言工程师,或者是对Go的...阅读全文

51CTO博客 2020-09-10 11:23:51 linccck

Golang LeetCode练习题及答案(三)

> 本文参考 [**嗨客网**](https://haicoder.net) Golang [**实战**](https://haicoder.net/case/index.html) # **Golang LeetCode练习题及答案(三)** # **前言** 本篇文章是关于一部分 Golang LeetCode 的题目以及详细的解题思路,每道题都附有答案链接,答案解题的每个步骤到运行结果都十分详细,十分适合小白拿来练习,也十分适合准备面试的各位练手,这篇文章我会不断更新...阅读全文

Go语言中文网 2020-09-11 11:57:25 haicoder_ibai

重写micro网关,添加鉴权模块

micro网关鉴权这个鉴权无非就是通过中间件来控制访问,需要重写micro代码我们只需要编写一个plugin函数,并注册到micro里面即可实现请求中间件的功能代码如下package main import ( "fmt" "github.com/micro/cli" "github.com/micro/micro/cmd" "github.com/micro/micro/plugin" "net/http" ) func JWTAuthWrapper() plugin.Handler { re...阅读全文

Segmentfault 2020-09-14 13:32:32 yylany

VSCode 开发 Go 程序也可以和 GoLand一样强大

好的编程语言搭配好的开发工具,那必定是如虎添翼。Gopher 们应该都知晓 GoLand,这是 IDEA 专门为 Go 语言开发的集成开发环境(IDE)。此前 IDEA 对 Go 的支持是通过插件的,后来开发独立的 IDE,可见 IDEA 看到了 Go 的发展和前景。今天这篇文章,主要给大家介绍如何将 VSCode 打造成为一个强大的 Go 开发工具。vscode-go 插件打开 VSCode,切换到扩展搜索界面,输入 go 搜索;或者打开一个 Go 源文件,VSCode 会建议你安装 vsco...阅读全文

51CTO博客 2020-09-10 22:30:57 小几斤

VSCode 开发 Go 程序也可以和 GoLand一样强大

好的编程语言搭配好的开发工具,那必定是如虎添翼。Gopher 们应该都知晓 GoLand,这是 IDEA 专门为 Go 语言开发的集成开发环境(IDE)。此前 IDEA 对 Go 的支持是通过插件的,后来开发独立的 IDE,可见 IDEA 看到了 Go 的发展和前景。今天这篇文章,主要给大家介绍如何将 VSCode 打造成为一个强大的 Go 开发工具。vscode-go 插件打开 VSCode,切换到扩展搜索界面,输入 go 搜索;或者打开一个 Go 源文件,VSCode 会建议你安装 vsco...阅读全文

51CTO博客 2020-09-10 22:30:43 小几斤

关于Golang的那些事(五) -- 函数

函数包含连续的执行语句,可以在代码中通过调用函数来执行它们。函数能将复杂的逻辑转换为一块块的代码块,使得更具可读性,另外有一些公共的函数,可以让团队合作更加便利,在Golang当中,函数和Node.js稍微有一点点的不同,下面由我来讲解讲解。 首先是函数的声明,在Golang中函数的声明就类似强类型的node.js函数声明,func name(param list) (result-list) {/** body **/}, 形式参数列表指定了一组变量的参数名和参数类型,它们的实参由调用这个函数...阅读全文

简书 2020-09-11 01:32:38 llkevin13579

为什么我们从GoLang迁移到NodeJS

近年来,GoLang的人气开始飙升。GoLang并不是一门新的编程语言,早在2009年左右,它就和NodeJS一样被构思出来了。它最近的受欢迎程度归结为它的优势,包括快速的性能,可移植性和云原生。此外,GoLang现在是收入最高的编程语言之一。但是,本文并不是将GoLang与NodeJS的优势进行比较,网络上已经涵盖了许多内容。相反,我将谈论GoLang对我们这样的初创公司有多实用,以及为什么我们决定放弃GoLang而选择NodeJS。在一开始的时候…让我们从头开始,我们从包含GraphQL,P...阅读全文

51CTO博客 2020-09-09 23:44:06 小几斤

golang生成swagger文档

golang生成swagger文档一直没有很好的方式,官方推荐的是通过注释生成文档,但是缺陷是注释很难写,IDE又没有自动提示今天发现一款不错的三方包,可以直接基于golang代码生成文档github.com/clearcodecn/swaggos# Swaggosswaggos 是一个golang版本的swagger文档生成器,提供了native code包装器.## 安装``` go get -u github.com/clearcodecn/swaggos```## 使用### 创建实例>...阅读全文

简书 2020-09-10 21:32:38 你微笑时好美_610a

golang生成swagger文档

golang生成swagger文档一直没有很好的方式,官方推荐的是通过注释生成文档,但是缺陷是注释很难写,IDE又没有自动提示 今天发现一款不错的三方包,可以直接基于golang代码生成文档 github.com/clearcodecn/swaggos Swaggos swaggos 是一个golang版本的swagger文档生成器,提供了native code包装器. 安装 go get -u github.com/clearcodecn/swaggos 使用 创建实例 创建一个新的实例,配置...阅读全文

简书 2020-09-10 21:32:38 你微笑时好美_610a

【编程】你问我为什么数组要从零开始?因为我乐意~

如题,数组第一个元素为什么要从零开始,而不从一开始?感觉这很反人类呀,正常来讲,一个集合的开始,不应该从一吗? 对于这个问题,我觉得可以从以下两方面来考虑。设计层面 我们先了解一下数组最基本的结构和寻址方式(即实现方式)。 现在市面上无论是C、Java、PHP,还是Go或者其他编程语言,他们数组的实现方式,应该都是一样的:一段连续的内存。 数组在分配内存的时候,我们会知道数组的开始地址(PS:在目前下标为零的情况下,也等同于数组的第一个元素的地址); 因为数组中每个元素的类型都是相同的,所以每种...阅读全文

简书 2020-09-10 19:32:45 C语言编程学习基地

图解 Go 内存管理器的内存分配策略

关于Go的内存分配 在 Go 语言里,从内存的分配到不再使用后内存的回收等等这些内存管理工作都是由 Go 在底层完成的。虽然开发者在写代码时不必过度关心内存从分配到回收这个过程,但是 Go 的内存分配策略里有不少有意思的设计,通过了解他们有助于我们自身的提高,也让我们能写出更高效的 Go 程序。 Go内存管理的设计旨在在并发环境中快速运行,并与垃圾回收器集成在一起。让我们看一个简单的示例: package main type smallStruct struct { a, b int64 c, ...阅读全文

简书 2020-09-10 19:32:42 小美人鱼失去的腿