经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 Go语言

[Go] golang的error接口

error接口 1.error就是一个接口interface 2.属于errors包,该包有一个导出方法New,返回了errorString类型 3.errorString类型实现了error接口 4.之所以这样是因为可以实现每个错误都是不同的实例 package main import (...[2019/2/22]

多租户通用权限设计(基于casbin)

多租户通用权限设计(基于 casbin) 所谓权限控制, 概念并不复杂, 就是确认某个操作是否能做, 本质上仅仅就是个bool判断. 权限几乎是每个系统必不可少的功能, 和具体业务结合之后, 在系统中往往表现的非常复杂和难于控制, 很大部分原因是把权限和具体业务结合的太过紧密, 把业务的复杂度也...[2019/2/21]

Linux下安装Beego:go install: cannot install cross-compiled binaries when GOBIN is set

Linux下安装Beego出错 问题:go install: cannot install cro -compiled binaries when GOBIN is set 遇到这个问题一般是在环境变量中设置了 GOBIN 可以打开 /etc/profile 把这个变量注释掉就,执行 source...[2019/2/21]

使用Golang搭建web服务

如何用golang搭建一个web服务呢?菜鸟官网的go web编程教程已经介绍了web服务器的工作原理,这里就不赘述了。 我们先看个例子:http.go package main import ( "fmt" "io" "log" "net/http" ) ...[2019/2/21]

Go学习笔记03-结构控制

目录 条件语句 循环语句 条件语句 条件语句用 if 关键字来判定条件,如: func bounded(v int) int { if v > 100 { ...[2019/2/21]

[Go] golang结构体成员与函数类型

package main import ( "fmt" ) 定义一个类型 type tsh struct { 定义成员,类型是func() string test func() string } 定义一个函数,获取tsh类型 func New(fn func() string)...[2019/2/21]

Go学习笔记04-函数

目录 函数定义 函数示例 小结 函数定义 函数定义与变量定义相似, func function_name(var1, var2, var3, ...) (return_type...[2019/2/21]

详解Golang 推荐的命名规范

Golang 推荐的命名规范 很少见人总结一些命名规范,也可能是笔者孤陋寡闻, 作为一个两年的golang 开发者, 我根据很多知名的项目,如 moby, kubernete 等总结了一些常见的命名规范。 命名规范可以使得代码更容易与阅读, 更少的出现错误。 如有不同意见欢迎吐槽、讨...[2019/2/21]

比Python、Java更快的Go能否笑傲江湖

随着云原生时代的到来,拥有高并发性、语法易学等特点的 Golang 地位逐渐凸显,在云原生编程中占据了主导地位。 出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。 特别是在云项目中,大部分都使用了Gola...[2019/2/20]

go Context的使用

go Context的使用

控制并发有两种经典的方式,一种是WaitGroup,另外一种就是Context WaitGroup的使用 WaitGroup可以用来控制多个goroutine同时完成 func main() { var wg sync.WaitGroup wg.Add(2) ...[2019/2/19]

基于go手动写个转发代理服务的代码实现

由于公司经常需要异地办公,在调试的时候需要用到内网环境,因此手动写了个代理转发服务器給兄弟们用:socks5proxy。 选型上,语言上就选择了Go,简单清晰,转发协议选择了socks5。 SOCKS5协议介绍 SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间...[2019/2/18]

golang实现分布式缓存笔记(一)基于http的缓存服务

目录 前言 cache 缓存服务接口 cache包实现 golang http包使用介绍 hello.go Redirect.go...[2019/2/18]

基础算法之排序算法

排序算法的Golang实现 package main import ( "fmt" ) 冒泡排序:升序 func BubbleSort(s []int) { for i:= 0;i < len(s);i++{ for j := 0;j < len(...[2019/2/18]

[Go] golang原子函数锁住共享资源

1.atomic包里的几个函数以及sync包里的mutex类型,提供了解决方案 2.原子函数能够以很底层的加锁机制来同步访问整型变量和指针 3.atomic.AddInt64(&counter, 1)的原理是强制同一时刻只能有一个goroutine运行并完成这个加法操作 package...[2019/2/18]

[Go] golang原子函数实现goroutine同步

启动了两个goroutine,并完成一些工作。在各自循环的每次迭代之后,在goroutine 会使用LoadInt64 来检查shutdown 变量的值。这个函数会安全地返回 shutdown 变量的一个副本。如果这个副本的值为1,goroutine 就会跳出循环并终止。   pa...[2019/2/18]

[Go] golang互斥锁mutex

1.互斥锁用于在代码上创建一个临界区,保证同一时间只有一个goroutine可以执行这个临界区代码 2.Lock()和Unlock()定义临界区 package main import ( "fmt" "runtime" "sync" ) var ( 全局变量 counter ...[2019/2/18]

[Go] golang缓冲通道实现管理一组goroutine工作

通道 1.当一个资源需要在goroutine之间共享时,通道在goroutine之间架起了一个管道 2.无缓冲通道和有缓冲通道,make的第二个参数就是缓冲区大小 3.无缓冲通道需要发送和接收都准备好,否则先执行的goroutine会阻塞等待 4.有缓冲的通道,在缓冲区没满之前,发送和接收动作都不...[2019/2/18]

Go语言相对于C++的优点

Go语言是Google公司在2009年开源的一门高级编程语言,它为解决大型系统开发过程中的实际问题而设计,支持并发、规范统一、简单优雅,被很多Go语言传道者誉为“互联网时代的C语言”。而C++语言诞生于1979年,可以将C++语言视为一个语言联邦,主要包含C语言(面向过程)、面向对象、STL容器和...[2019/2/18]

casbin的分析

casbin的分析 问题 一般的项目中,都会有权限认证模块,用来控制不同的角色,可以访问的功能。比较出名的权限控制模型有ACL和RABC。如果每个项目中,都重新实现权限控制模块,这样操作会比较繁琐,希望有一个统一的简单模块来控制权限,而casbin这个开源项目,可以支持acl,rabc和abac这...[2019/2/15]

Go 编译原理实现计算器(测试驱动讲解)

本文不需要你掌握任何编译原理的知识。 只需要看懂简单的golang语言即可, 完整的代码示例在GIT 听到编译原理,就觉得很高大上。记得上大学时,这门课要记忆一些BNF,LEX,AST,CFG这些有的没的。一个听不懂,二个没兴趣。随着使用了几门语言之后,也尝试用编译原理的基本知识写过一个sql转e...[2019/2/14]

使用google wire解决依赖注入

使用google wire解决依赖注入 google wire是golang的一个依赖注入解决的工具,这个工具能够自动生成类的依赖关系。 当我们写代码的时候,都希望,类都是一个个独立的结构,互不耦合,而类之间的关系,是通过外部传递不同的依赖组件,来组装出来,生成不同的实例。 一个耦合的例子: ...[2019/2/13]

Golang之轻松化解defer的温柔陷阱

Golang之轻松化解defer的温柔陷阱

目录 什么是defer? 为什么需要defer? 怎样合理使用defer? defer进阶 defer的底层原理是什么? 利用defer原理 defer命令的拆解 defer语句的参数 闭包是什么? defer配合recover 后记 参考资料什么是defer? defer是Go语言提供的一种用于...[2019/2/13]

Go学习笔记02-基本语法

目录 变量定义 代码示例 变量定义 变量定义 代码示例 package main import "fmt" /* 此处定义的变量为包内变量,在包内有效 ...[2019/2/12]

[Go] golang的竞争状态

1.goroutine在逻辑处理器的线程上进行交换 2.竞争状态:两个或者多个goroutine在没有互相同步的情况下,访问某个共享的资源,并试图同时读和写这个资源,就处于互相竞争的状态 对共享资源的读和写操作必须是原子化的,同一时刻只能有一个goroutine对共享资源进行读和写操作 3...[2019/2/11]

golang中的字符串拼接

 go语言中支持的字符串拼接的方法有很多种,这里就来罗列一下 常用的字符串拼接方法 1.最常用的方法肯定是 + 连接两个字符串。这与python类似,不过由于golang中的字符串是不可变的类型,因此用 + 连接会产生一个新的字符串对效率有影响。 s1 := "...[2019/2/11]

golang写业务代码,用全局函数还是成员函数

在golang中,函数划分为全局函数和成员函数,在使用的时候,有种情况,会产生一些疑惑的,就是在写业务代码的时候,使用全局函数好像会比较方便,一般业务代码,都不会复用,都是针对特定的业务进行编程,要复用的代码都会封装为功能函数了。在写业务代码的时候,使用包+全局函数的划分方式,可以将业务代码写成单...[2019/2/11]

golang标准库 context的使用

golang标准库 context的使用

本文索引 问题引入 context包简介 示例 问题引入 goroutine为我们提供了轻量级的并发实现,作为golang最大的亮点之一更是备受推崇。 goroutine的简单固然有利于我们的开发,但简单总是有代价的,考虑如下例子: func htt...[2019/2/1]

golang实现跨域访问的方法

前端通过Ajax来获取服务器资源时,会存在跨域问题。因为Ajax只能同源使用(预防某些恶意行为),所以当访问不在同一个域中的资源时,就会出现跨域限制。尤其在开发和测试时,跨域问题会给前端测试带来非常不便。 不过CORS(Cro -Origin Resource Sharing,跨域资源共享)解...[2019/1/31]

CQRS简单入门(Golang)

CQRS简单入门(Golang)

一、简单入门之入门   CQRS/ES和领域驱动设计更搭,故整体分层沿用经典的DDD四层。其实要实现的功能概要很简单,如下图。     基础框架选择了https: github.com/looplab/eventhorizon,该框架功能强大、示例都挺复杂的,囊括的概念太多,不太适...[2019/1/30]

[Go] go get获取官方库被墙解决

1.直接在github上clone对应的代码 , 地址为: https: github.com/golang/xxxxxxx.git xxxxxxx为所缺的库名  , 比如net库  text库 https: github.com/golang/net.git http...[2019/1/30]

Go:学习笔记兼吐槽(3)

    Go:学习笔记兼吐槽(1) Go:学习笔记兼吐槽(2) Go:学习笔记兼吐槽(3)       数组 Golang 中,数组是值类型。 数组的声明 var arr [10]...[2019/1/30]

Golint的简易使用方法

根据作者的说法: Golint is a linter for Go source code. Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes....[2019/1/28]

Ubuntu 16.04 下简单安装使用golang之备忘

??刚开始学习Go语言,这里记录下我在Ubuntu 16.04下安装使用golang的过程,方便以后查询。 ? 一、安装 ? 1、添加源 ??如果使用默认的源安装golang的话,版本太低,只到1.6,所以要添加一个新的源并更新,执行以下命令: sudo add-apt-repositor...[2019/1/28]

LaTeX表格绘制备忘之Go语言中的几个表

??以下绘制的表格选自《Go语言 云动力》一书。这些表格比较简单,LaTeX语句也比较简单。 ? 完整代码: % 博客园陆巍的博客 https: www.cnblogs.com/atthefirst/ \documentcla {article} % \usepackage{ctex} % ...[2019/1/28]

LaTeX宏包TikZ绘图示例——Go语言起源图

LaTeX宏包TikZ绘图示例——Go语言起源图

??本例所绘图形选自《Go语言程序设计》(作者:Alan A. A. Donovan与Brian W. Kernighan)。 完整代码 \documentcla {article} % \usepackage{ctex} % 汉字支持 \usepackage{geometry} % 页面布局支...[2019/1/24]

Golang常量iota的使用实例

Golang常量iota的使用实例

Codes package main import "fmt" type color byte const ( black color = iota red blue ) func test(c color) { fmt.Println(c) } ...[2019/1/23]

[Go] 使用go语言解决现代编程难题

1.计算机一直在演化,64核,128核等等,但是我们依旧在使用为单核设计的技术编程 2.Go语言让分享自己的代码包更容易 3.Go语言重新思考传统的面向对象,提供了更高效的复用代码手段 4.Go不仅提供高性能而且开发更快速 5.Go语法简洁,编译速度快,内置并发,自带垃圾回收器 6.Go编译器只关...[2019/1/21]

beego解读Cache之MemoryCache

beego 框架 cache 目录是 Go 实现的一个缓存管理器,是beego框架自带工具之一,当然,如果你只想使用 cache 而不是整个 beego 框架,可以选择性安装: go get github.com/astaxie/beego/cache 在我写这篇博文时, beego 版本是 ...[2019/1/21]

再探go modules:使用与细节

还有半个月go1.12就要发布了。这是首个将go modules纳入正式支持的稳定版本。 距离go modules随着go1.11正式面向广大开发者进行体验也已经过去了半年,这段时间go modules也发生了一些变化,借此机会我想再次深入探讨go modules的使用,同时对这个新生包管理方案...[2019/1/21]

go语言打造个人博客系统(二)

go语言打造个人博客系统(二) ??在上篇文章go语言打造个人博客系统(一)中,我们了解了go语言的优点和go语言的数据库操作,本次我们会完成博客系统的后端开发。 博客系统后端接口开发 路由测试 http.HandleFunc("/ping", Pong) func Pong(w h...[2019/1/18]

说说不知道的Golang中参数传递

说说不知道的Golang中参数传递

本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为。在golang中存在着map、channel和slice这三种内建数据类型,它们极大的方便着我们的日常coding。...[2019/1/17]

Golang并行判断素数

## Golang多核判断素数方式 1 package main 2 3 import ( 4 "bufio" 5 "fmt" 6 "os" 7 "runtime" 8 "strconv" 9 "syscall" 10 ) 1...[2019/1/17]

go语言打造个人博客系统(一)

go语言打造个人博客系统(一) 为什么选择go语言? ??听说go语言是在几年前,但真正深入了解他却是在2017年,因为当时作为讲师 ,需要准备go语言的课程,结果稍一接触立刻就喜欢上这门语言了,作为长期的c/c++程序员来说,10年来参加了很多大型项目,用c来开发确实很苦逼,所以碰到go语...[2019/1/16]

[日常] Go-逐行读取文本信息

go逐行读取文本信息: 1.os包提供了操作系统函数的不依赖平台的接口,Open方法打开一个文件用于读取,func Open(name string) (file *File, err error) 2.bufio包实现了有缓冲的I/O,NewReader方法创建一个具有默认大小缓冲、从r读取的*...[2019/1/16]

Go:学习笔记兼吐槽(2)

基本数据类型和string之间的转换 (1) 基本类型转string 使用 fmt.Sprintf(“%参数”, 表达式) a. 通用: 参数含义 %v 值的默认格式表示 %+v 类似%v,但输出结构体时会添加字段名 ...[2019/1/15]

GOLANG使用Context管理关联goroutine的方法

一般一个业务很少不用到goroutine的,因为很多方法是需要等待的,例如http.Server.ListenAndServe这个就是等待的,除非关闭了Server或Listener,否则是不会返回的。除非是一个API服务器,否则肯定需要另外起goroutine发起其他的服务,而且对于API服务器...[2019/1/15]

GOLANG使用Context实现传值、超时和取消的方法

GO1.7之后,新增了context.Context这个package,实现goroutine的管理。 Context基本的用法参考GOLANG使用Context管理关联goroutine。 实际上,Context还有个非常重要的作用,就是设置超时。比如,如果我们有个API是这样设计的: ...[2019/1/15]

golang简单实现jwt验证(beego、xorm、jwt)

程序目录结构 简单实现,用户登录后返回一个jwt的token,下次请求带上token请求用户信息接口并返回信息。 app.conf文件内容(可以用个beego直接读取里面的内容)写的是一个jwt的secretkey jwtkey="12345678" config.json里面保...[2019/1/14]

转载: 国内的go get无法连接问题的解决

转载: 国内的go get无法连接问题的解决

转载自CSDN的文章 https: blog.csdn.net/gongpulin/article/detail 80972806 国内的go get问题的解决 go get golang.org/x 包失败解决方法 由于各种问题,国内使用 go get 安装 golang 官方包可能会失...[2019/1/14]

Go:学习笔记兼吐槽(1)

自动添加分号 在很多其他的编程语言中,每一行代码的结尾都必须有分号(假设一行中只有一句代码),Golang 的开发者认为,既然每行都要加,不如编译器自动来加。当然,你加了分号也不会报错。 Golang 中,在以下两种情况下会自动加入分号: 当输入被断开为标记时,如果行末标记为...[2019/1/14]

347
20
记录数:1098 页数:19/22首页上一页13141516171819202122下一页尾页
 友情链接:直通硅谷  点职佳  北美留学生论坛
加载更多

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号