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

Go语言库系列之flag

背景 终端(命令行)操作是程序员的必备技能,但是你知道怎么通过golang制作出如下命令吗? $ flag girl -h Usage of girl: -height int 身高 (default 140) $ flag girl --height 170 ...[2020/4/2]

浅尝Go语言GC

大家好,我是小栈君,因为个人和工作的缘故,所以拖更了一点时间,但是关于拖更的内容小栈君会在后续的时间中补回来,还希望大家继续支持和关注小栈君。当然,在国内疫情稍微减缓的情况下,小栈君在这里也多说两句,在非常时刻,我们应当保持警惕,清洗手,多通风,避免人群聚集,希望大家平安健康, 闲话不...[2020/4/2]

consul入门

consul consul用于微服务下的服务治理,主要特点有:服务发现、服务配置、健康检查、键值存储、安全服务通信、多数据中心等。 什么叫服务治理发现?起初我们的服务比较单一,各服务之间通过接口就能访问。后面服务越来越复杂出现了分布式,为了不引起单点问题,必然是多服务部署,如果还用原来...[2020/4/1]

Window下Beego环境搭建和bee工具使用

  首先,下载并安装好GO并配置好GOROOT和GOPATH环境变量(如果您是用msi包安装的go,那么这些环境变量已经设置好了)。并在Path环境变量中加入%GOPATH%\bin和%GOROOT%bin。   第二步,下载并安装好git bash工具。   第三步,打开...[2020/4/1]

为什么大家都选择go语言?

今天小编就给大家分享的文章是为什么大家都选择用go语言?我觉得选择用go语言的原因有很多,go语言用于服务器端开发,适合很多程序员一起开发大型的软件,并且在软件的不断增长过程中,他能让程序员更容易的惊醒修改,想要go语言入门和学习go语言的小伙伴一定要看看了,希望对大家有帮助。 静...[2020/4/1]

go:数据类型

  Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。 1.基本数据类型 整型 整型分为以下两个大类: 按长度分为:int8、int16、int32、int64...[2020/4/1]

Go解算法07整数反转

Go解算法07整数反转

描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例?1: 输入: 123 输出: 321 ?示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整...[2020/4/1]

go:内置函数 | 闭包 | 数组 | 切片 | 排序 | map | 锁

内置函数 1.close: 主要是用来关闭channel 2.len:用来求长度,比如string、array、slice、map、channel 3.new与make都是用来分配内存 new用来分配值类型,如int、string,返回的是指针 make用来分配引用类型,如chan...[2020/3/30]

go 基础

变量声明 var 变量名 变量类型 var name string 批量声明 var ( a string b int ) 初始化 var 变量名 类型 = 表达式 一次初始化多个 var a, b = 1, 2 ...[2020/3/30]

go micro实战01:快速搭建服务

背景 go-micro给我们提供了一个非常便捷的方式来快速搭建微服务,而且并不需要提前系统了解micro,下面用一个简单的示例来快速实现一个服务。 创建Proto文件 因为我们要做微服务,那么就一定有服务端和客户端,这两个端通过什么格式进行内容传输,就涉及到了序列化,比较主流的序列化协...[2020/3/27]

FormData/Go分片/分块文件上传

FormData/Go分片/分块文件上传

FormData 接口提供了一种表示表单数据的键值对的构造方式,经过它的数据可以使用 XMLHttpRequest.send() 方法送出,本接口和此方法都相当简单直接。如果送出时的编码类型被设为 "multipart/form-data",它会使...[2020/3/27]

理解Golang组件protobuf

理解Golang组件protobuf

什么是protobuf protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更...[2020/3/27]

go: time包

go: time包

1.time.Time类型,用来表示时间 2.获取当前时间 now := time.Now() now := time.Now().Day() now := time.Now().Minute() now := time.Now().Month() now := time....[2020/3/26]

go:函数

1.声明语法 func 函数名 (参数列表) (返回值) { pa } 1.func add() { pa } 2.func add(a int, b int) (int,int) { pa } 3.func add(a,b int,args...) i...[2020/3/26]

go:流程控制

1.if /else分支判断 1.if condition { } 2.if condition { }else { } 3.if condition { }else if condition { }else { } 2.switch / case var i...[2020/3/26]

golang语言编码规范的实现

本规范旨在为日常Go项目开发提供一个代码的规范指导,方便团队形成一个统一的代码风格,提高代码的可读性,规范性和统一性。本规范将从命名规范,注释规范,代码风格和 Go 语言提供的常用的工具这几个方面做一个说明。该规范参考了 go 语言官方代码的风格制定。 一、 命名规范 命名是代码规范中...[2020/3/26]

理解Go语言组件flag

作用 主要用来实现命令行的参数解析,以达到实现以下效果的目的 $ cmd -flagname 123 使用方式 flag是Go语言的内置包,能接收的参数类型主要有字符串、布尔和数值类型。 方式一 func main() { var ip = flag.String("...[2020/3/26]

Go语言defer分析

什么是defer? defer语句是专门在函数结束以后做一些清理工作的。我们先举一个例子来更好的理解,现在有一个函数,它的作用是把一个文件内容拷贝到另一个文件。 func CopyFile(dstName string, srcName string) (written int64, ...[2020/3/25]

Golang通过小程序获取微信openid的方法示例

为什么要获取小程序的 openid 在开发微信小程序的过程中,小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。那么这个用户身份标识就是 openid。 小程序获取 openid 的流程 那么小程序获取 openid 的流程具体如下,这里...[2020/3/25]

源码解读 Golang 的 sync.Map 实现原理 - 张凯强-zkqiang

简介 Go 的内建 map 是不支持并发写操作的,原因是 map 写操作不是并发安全的,当你尝试多个 Goroutine 操作同一个 map,会产生报错:fatal error: concurrent map writes。 因此官方另外引入了 sync.Map 来满足并发编程中的应用...[2020/3/24]

GO语言web框架Gin之完全指南(二)

这篇主要讲解自定义日志与数据验证 参数验证 我们知道,一个请求完全依赖前端的参数验证是不够的,需要前后端一起配合,才能万无一失,下面介绍一下,在Gin框架里面,怎么做接口参数验证的呢 gin 目前是使用 go-playground/validator 这个框架,截止目前,默认是使用 ...[2020/3/24]

Golang中的内置函数

Go中存在着不少内置函数,此类函数并不需要引入相关Package就可以直接使用该类函数。在Go的源码builtin包的builtin.go中定义Go所有的内置函数;但该文件仅仅是定义描述出了所有内置函数,并不包含函数的任何实现代码,该文件除了定义了内置函数还定义了部分内置类型; 内置函...[2020/3/24]

defer 链如何被遍历

去年开始写文章的第一篇就是关于 defer,名字比较文艺:《Golang 之轻松化解 defer 的温柔陷阱》,还被吐槽了。因为这篇文章,到《Go 夜读》讲了一期。不过当时纯粹是应用层面的,也还没有跳进 Go 源码这个大坑,文章看着比较清新,也没有大段的源码解析。 自从听了曹大在《Go...[2020/3/23]

golang高并发模型

github上看到的一篇关于golang高并发性的文章,觉得写的非常好 github 地址 https: github.com/rubyhan1314/Golang-100-Days 一、并发性Concurrency 1.1 多任务 怎么来理解多任务呢?其实就是指我们的操作系统可以同...[2020/3/23]

[go学习笔记]九、go语言中的字符串

字符串 string是数据类型,不是引用或者指针类型 string是只读的byte slice,len函数可以获取他所有的byte数量 string的byte数组可以存放任何数据 func TestString(t *testing.T) { var s string t.Log...[2020/3/23]

Go语言net/http包的简单使用

1.打开Goland,点击New Project新建一个项目   然后填写新建项目的工程名,选择sdk    选择和设置完成后点击Create完成创建。选中工程名,单击右键,选择New->Go File    ...[2020/3/23]

1、 go基础

1、Go 语言最主要的特性 自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 2、$GOPATH目录约定有三个子目录 src存放源代码(比如:.go .c .h .s等) 按照golang默认约定,go run,go ...[2020/3/23]

channel的基本使用

1、管道分类 读写管道 只读管道 只写管道 缓冲通道 :创建时指定大小(如果不指定默认为非缓冲通道) 2、正确使用管道 管道关闭后自能读,不能写 写入管道不能超过管道的容量cap,满容量还写则会阻塞 管道为空时,如果没有关闭,则继续读取会阻塞当前线程,直到有东西写...[2020/3/23]

channel通道常见使用场景

1、读写 package main import ( "fmt" "time" ) func WriteData(intChan chan int) { for i:=1;i<=50;i++{ intChan<-i ...[2020/3/23]

channel的关闭的经典场景

关闭原则 一个常用的使用Go通道的原则是不要在数据接收方或者在有多个发送者的情况下关闭通 道。 通用的原则是不要关闭已关闭的通道 错误关闭 ch:=make(chan int,1) go func(ch chan int) { ch<-1 log.Println(...[2020/3/23]

【go学习笔记】八、Map与工厂模式

【go学习笔记】八、Map与工厂模式

Map与工厂模式 Map的value可以是一个方法 与Go的Dock type 接口方式一起,可是方便的实现单一方法对象的工厂模式 func TestMap(t *testing.T) { m := map[int]func(op int) int{} m[1] = ...[2020/3/20]

【go学习笔记】七、Map声明、元素访问及遍历

Map声明 m := map[string]int{"one":1,"two":2,"three":3} m1 := map[string]int{} m1["one"] = 1 m2 := make(...[2020/3/17]

Effective Go笔记

Effective Go笔记

一 格式化   使用gofmt程序对go源码进行格式化,以便统一编码风格,可直接在GoLand进行配置[1]。Go源码格式使用tab作为缩进,且很少使用括号。 二 注释   Go支持块注释/**/和行注释 ,行注释更常用,块注释主要用于包注释和大块代码禁用。godo...[2020/3/17]

【go学习笔记】六、数组和切片【连载】

数组的声明 var a [3]int 声明并初始化为默认零值 a[0] = 1 b := [3]int{1,2,3} 声明同时初始化 c := [2][2]int{{1,2},{3,4}} 多维数组初始化 数组元素遍历 func TestArrayTrave...[2020/3/17]

Golang消息队列:NSQ简单介绍与使用

1.服务启动: Wi...[2020/3/16]

golang jwt-go的使用

JWT(json web token) jwt jwt的原理和se ion有点相像,其目的是为了解决rest api中无状态性 因为rest接口,需要权限校验。但是又不能每个请求都把用户名密码传入,因此产生了这个token的方法 流程: https: blog.wangjunfen...[2020/3/16]

defer原理、性能、优化

1、defer执行时机 for i:=1;i<10;i++{ defer log.Println(i) } 上面那段简单的代码基本就可以说明多个defer时的执行顺序了 当代码中出现defer时,会将defer要执行的函数压人栈,然后等函数执行完毕再执行defer栈中的...[2020/3/16]

Go组件学习:如何读取ini配置文件

代码示例全部保存在,欢迎star:https: github.com/EnochZg/golang-examples 安装组件 go get gopkg.in/ini.v1 使用 先创建ini后缀的配置文件,本文以config.ini为例 username = 平也 在mai...[2020/3/16]

Golang package轻量级KV数据缓存——go-cache源码分析

作者:Moon-Light-Dream 出处:https: www.cnblogs.com/Moon-Light-Dream/ 转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任 什么是go-cache KV存储引擎有很多,常用的如redis,...[2020/3/16]

Go语言:如何解决读取不到相对路径配置文件问题

背景 项目交叉编译为可执行文件之后,在其他目录执行文件时提示找不到配置文件 2020/03/14 20:44:23 配置文件读取失败 open config.ini: no such file or directory 解决方案 直接采用以下代码获取到实际执行文件的路径,然后拼接配置...[2020/3/16]

详解go中的引用类型

值类型和引用类型 值类型:int、float、bool和string这些类型都属于值类型,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值存储在栈中。当使用等号=将一个变量的值赋给另一个变量时,如 j = i ,实际上是在内存中将 i 的值进行了拷贝。可以通过 &i 获取...[2020/3/16]

Go语言中定时器的使用

GO语言在time包中提供了三种定时器的使用方式: 1.第一种:ticker   A Ticker holds a channel that delivers `ticks'' of a clock at intervals. type Ticker struc...[2020/3/12]

golang包快速生成base64验证码的方法

base64Captcha快速生成base64编码图片验证码字符串 支持多种样式,算术,数字,字母,混合模式,语音模式. Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64编码可用于在HTTP环境下传递较长的标识信息, 直接把base64当成是字符串方式的...[2020/3/12]

golang切片

切片与数组 go的数组是这样的 array := [3]int{1,2,3} array := [...]int{1,2,3} go的切片 array := []int{1,2,3} 1 array := make([]int,2) 2 arr := [5]int{1,2,3,...[2020/3/12]

go结构体继承组合和匿名字段

go结构体继承组合和匿名字段

1、结构体方法 go不是纯粹的面向对象的,在go里面函数是一等公民,但是go也有结构体实现类似java一样类的功能来提供抽象。结构体的方法分为值方法和指针方法,前者在方法中做的改变不会改变调用的实例对象,后者则会改变,同样不管是值类型还是指针类型都是可以被调用的,因为go结构体底层会自动...[2020/3/12]

golang 语言开发环境vs code (visual studio code)

vs code   1:安装go 语言插件 还有软件的中文简体包     2:vscode安装golang插件后,还需要安装Golang插件相关依赖工具。  Ctrl+Shift+P输入Go:Install/Update T...[2020/3/12]

Go包管理Glide使用心得

Glide是Go语言的一种包管理工具,官网:https: glide.sh/, Github地址: https: github.com/Mastermind glide。当然从Go 1.13开始,模块模式变成所有开发的默认模式。关于Go module,可阅读Go官方博客:Using Go...[2020/3/12]

带你入门etcd

etcd是什么? etcd是一个用Go语言写的,用于分布式系统下高性能的键值(K-V)存储、服务发现、负载均衡、、分布式锁、配置管理等场景地应用,类似于Java的zookeeper。基于Raft协议,能保证数据的一致性。 官方地址 [etcd.io] https: etcd.io ...[2020/3/12]

RPC原理以及GRPC详解

一、RPC原理 1、RPC框架由来 单体应用体量越来越大,代码不好维护和管理,所以就产生了微服务架构,按照公共或功能模块拆分为一个个独立的服务,然后各独立的服务之间可以相互调用。 微服务之间相互调用,该如何实现? 首先要解决下面5个问题: 1、如何规定远程调用的语法? 2、如何传递参数...[2020/3/11]

Go打包二进制文件的实现

背景 众所周知,go语言可打包成目标平台二进制文件是其一大优势,如此go项目在服务器不需要配置go环境和依赖就可跑起来。 操作 需求:打包部署到centos7 笔者打包环境:mac os 方法:进入main.go所在目录,输入如下命令,当前目录便会生成main的可执行文件 ...[2020/3/11]

347
2
记录数:892 页数:1/1812345678910下一页尾页
加载更多