golang switch case结构

结构: switch express { case exp1: todo1 case exp2: todo2 default: } Q1: default定义在最前面和最后面有什么区别? default的执行时机和default所在的位置无关。不管default是放在所有其他case的前面还是后面,都是先检查其他case,其他case都不满足时,default才会得到执行。 default放在最前面: func main(){ v := 10 switch v { default: fmt.Pr...阅读全文

简书 2020-01-21 00:32:43 舒小贱

2020-01-20

没想到蹭了一波年假,感觉就很舒服,然后就可以摸鱼啦啦啦啦啦。 过年期间把 golang的基础使用看完吧,《go 高级编程》 然后可以写一写go的项目,了解一下uwsgi到底是什么。 对nginx的配置相关的内容。 到底使用哪些,哪些有用。 现在还不清楚参数 到底有什么用来着。。阅读全文

简书 2020-01-21 00:32:42 换首歌给你听

Golang 使用 protobuf 的教程

1、下载protobuf的编译器protoc 网站:https://github.com/google/protobuf/releases 选择各自平台的版本下载window: 下载: protoc-3.3.0-win32.zip 解压,把bin目录下的protoc.exe复制到GOROOT/bin下,GOROOT/bin加入环境变量。 当然也可放在其他目录,需加入环境变量,能让系统找到protoc.exelinux: 下载:protoc-3.3.0-linux-x86_64.zip 或 pro...阅读全文

简书 2020-01-20 17:32:43 佳闯天涯

为什么Go语言不支持重载?

Golang官网截图 上图是Golang官网FAQ的部分截图,看来关于Go不支持重载的这个问题困扰了很多从面向对象语言转到Go的开发者。官方在这里做出了解答。 在上面的回答中有这样一句话: Experience with other languages told us that having a variety of methods with the same name but different signatures was occasionally useful but that it co...阅读全文

简书 2020-01-20 17:32:41 Hifun丶

golang使用Go Modules

关于Go Modules go modules是golang在v1.11版本开始支持的新型依赖管理系统,它的出现取代了$GOPATH/src,每个项目下仅使用一个go.mod文件管理依赖。 环境准备 0 . golang v1.11+版本1 . 终端命令go env -w GO111MODULE=on开启go modules功能。2 . 设置GOPROXY,针对默认代理proxy.golang.org被墙的问题。go env -w GOPROXY=https://goproxy.cn,direc...阅读全文

Segmentfault 2020-01-27 09:32:33 WindNotStop

cgo:不同语言重写hpp文件中声明的函数

引用自golang高级编程2.1节 接口文件hello.h是hello模块的实现者和使用者共同的约定,但是该约定并没有要求必须使用C语言来实现接口。我们可以用不同语言来重新实现这个C语言函数.也是说我们可以使用不同语言不同语法来实现这个功能,只要这个功能被重写即可. .h文件接口内容: <pre spellcheck="false" class="md-fences md-end-block contain-cm modeLoaded" lang="hpp" contenteditable="f...阅读全文

简书 2020-01-20 15:32:46 繁黎_8086

Golang微服务框架-Mico

Mico是一个工具集合,通过将微服务架构抽象成一组工具。隐藏了分布式系统的复杂性。为开发人员提供更简洁的概念。Mico主要由三部分组成:go-mico:开发SDK,包含了RPC框架,服务发现、消息订阅/发布等功能。go-plugins:mico插件。mico:Mico提供的管理工具,包含了API网关,仪表盘,RPC代理等功能。go-mico: services:微服务,提供了对微服务功能开发的封装,可以快速创建一个微服务。client:RPC客户端,提供了诸如 服务发现/负载均衡/RPC代理和调...阅读全文

简书 2020-01-20 15:32:43 皮斯勒夫

Go 每日一库之 viper

简介 上一篇文章介绍 cobra 的时候提到了 viper,今天我们就来介绍一下这个库。 viper 是一个配置解决方案,拥有丰富的特性: 支持 JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件; 可以设置监听配置文件的修改,修改时自动加载新的配置; 从环境变量、命令行选项和io.Reader中读取配置; 从远程配置系统中读取和监听修改,如 etcd/Consul; 代码逻辑中显示设置键值。 快速使用 安装: $ go get githu...阅读全文

掘金 2020年01月20日 darjun

不要尝试用Windows Visual Studio Code写Golang, Mac版没有那么多乱七八糟问题

不要尝试用Windows Visual Studio Code写Golang, Mac版没有那么多乱七八糟问题 试了好几天, Windows的Visual Studio Code的Go以及相关工具各种问题, 比如 代码提示超级慢, 几乎不可用 找不到import包, 路径在linux, mac下正常, 在windows上提示没有目录等 公司给的电脑是Windows, 换了自己的Mac之后, Visual Studio Code写Golang代码就顺畅多了.阅读全文

简书 2020-01-20 12:32:47 老廖2018

你还在代码里做读写分离么?要不试试这个中间件吧?

1. 一个SpringBoot问题就干趴下了?我却凭着这份PDF文档吊打面试官. 2. 秋招JAVA面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等 3. 美团一面凉凉:MySQL+Java+Redis+算法+网络+Linux等一个都讲不清 4. 面试败给微服务?别怕,我带你一起手撕Dubbo,SpringBoot与Cloud! 01 摘要 传统的MySql读写分离方案是通过在代码中根据SQL语句的类型动态切换数据源来实现的,那么有没有什么中间件可以自动实现...阅读全文

简书 2020-01-20 12:32:46 java菲

【代码篇】从零开始一步步搭建自己的golang框架(三)

上一篇文章里,我们定了项目基本目录结构。现在来回顾一下我的思路: 创建入口文件; 指定配置、日志目录; 指定数据库、队列、缓存组件目录; 创建数据处理的controller目录; 指定公共函数等杂项。 接下来,我们还是按照这个顺序填充代码。 入口文件 func main() { config.InitConfig() logger.InitLogger() } 暂且忽略一些实现细节,我们需要先初始化配置和日志,先来看看日志,我选用Uber的zap日志库。来看看日志模块怎么写? 日志 packag...阅读全文

简书 2020-01-20 12:32:42 onepunchgo

Go 每日一库之 viper

简介 上一篇文章介绍 cobra 的时候提到了 viper,今天我们就来介绍一下这个库。viper 是一个配置解决方案,拥有丰富的特性: 支持 JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件; 可以设置监听配置文件的修改,修改时自动加载新的配置; 从环境变量、命令行选项和io.Reader中读取配置; 从远程配置系统中读取和监听修改,如 etcd/Consul; 代码逻辑中显示设置键值。 快速使用 安装: $ go get github...阅读全文

Segmentfault 2020-01-27 00:32:32 darjun

golang 相关内容

准备年前看书+ 看完之前的gorpc项目。 可以顺带看一下gocache项目。应该是cache2go项目。 感觉对go还是整个过程不了解,到底怎么从go-> 机器指令的过程。 还有对协程也不是特别的了解。现在只能说会用。 所以要全面的进行了解。 今天工作的时候比较严格的按照顺序来,所以比较顺利的结束了一些任务。阅读全文

简书 2020-01-20 07:32:42 换首歌给你听

【代码篇】从零开始一步步搭建自己的golang框架(二)

上一篇我写到了项目初始化完成,今天接着写。目标是完成项目基本的代码目录架构。 第一步 首先,创建main.go文件,作为我们的程序的入口文件。 第二步 顺着思路走,我们先不写具体的代码,有了入口文件之后,我们下一步应该怎么做?读取配置?不,应该是写日志了。所以我们创建一个logger目录,用来存放日志组件。 第三步 现在是时候,读取我们项目的配置了,我们创建一个config目录来存放配置有关的东西。 第四步 想想,我们读取完配置之后,配置一般可能包含哪些东西?是不是有数据库的配置?是不是有队列的...阅读全文

51CTO博客 2020-01-19 10:03:53 wx5e1abbbb0a5e5

Go unsafe 包的使用

unsafe包 golang是一种静态的强类型的语言,所有的类型都是不能随意转换的,Go语言是不允许两个指针类型进行转换的。go官方是不推荐使用unsafe的操作因为它是不安全的,它绕过了golang的内存安全原则,容易使你的程序出现莫名其妙的问题,不利于程序的扩展与维护。但是在很多地方却是很实用。在一些go底层的包中unsafe包被很频繁的使用。 unsafe 定义 package unsafe //ArbitraryType仅用于文档目的,实际上并不是unsafe包的一部分,它表示任意Go表...阅读全文

Segmentfault 2020-01-26 20:32:32 大二小的宝

「工具推荐」golang 代码可视化工具 go-callvis

「工具推荐」go-callvis go-callvis是相对 以图片的形式展示了go程序的调用关系,这个工具在看复杂项目时尤其有用。 亲测,借助它看祖传golang代码,头痛好多了。 安装 go get -u github.com/TrueFurby/go-callvis # or git clone https://github.com/TrueFurby/go-callvis.git cd go-callvis && make install 复制代码运行依赖 Go 1.12+ Graphv...阅读全文

掘金 2020年01月19日 goodspeed

15个流行编程语言及其应用

这篇文章主要介绍了15个出现在3个编程语言排行榜的编程语言和他们的擅长的领域,他们分别是(排名不分先后):JavaScript,Python,Java,PHP,C#,C,C++,Ruby,Swift,Go/Golang,Scala,R,Objective-C,Perl。 Javascript JavaScript is most commonly used as a client side scripting language.This means that JavaScript code is...阅读全文

简书 2020-01-19 23:32:50 编程圈

这个IM项目没时间搞了,开源算了。10万并发,基于golang。

先上效果 界面效果图 安装方法 本系统升级到golang1.12,请开启如下支持 #开启go mod支持 export GO111MODULE=on #使用代理 export GOPROXY=https://goproxy.io 1.下载项目 git clone https://github.com/winlion/chat.git 2.项目配置 2.1 ide配置 goland IDE ADD Configuration->左上角+->go build类型,右侧填写 files :{你的项目路...阅读全文

简书 2020-01-19 23:32:50 非正式解决方案

golang微服务框架go-micro 入门笔记2.4 go-micro service解读

本章节阐述go-micro 服务发现原理 go-micro架构 下图来自go-micro官方 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架go-micro 入门笔记2.1 micro工具之micro api golang微服务框架go-micro 入门笔记2.2 micro工具之micro web golang微服务框架go-micro 入门笔记2.3 micro工具之消息订阅和发布 Servi...阅读全文

简书 2020-01-19 23:32:48 非正式解决方案

golang错误处理优化

一般条件下golang的错误处理模式如下: err := ... if err != nil { //打印或者退出 } 这种模式可以打印出错误,但是很难查找错误的文件或者位置,可以写一个公用的检查错误函数处理,如下: func CheckError(err error) bool { if err != nil { _, file, line, ok := runtime.Caller(1) if ok { emsg := fmt.Sprintf("file:%s, line:%d, error...阅读全文

简书 2020-01-19 23:32:48 hewolf