go对elasticsearch的增删改查
环境
elasticsearch 6.8 (6.x版本应该都没问题)
go客户端sdk: github.com/elastic/go-elasticsearch/v6
其实自己封装api也行,反正elasticsearch对外交互的协议是restful接口
注意点
发起的请求,如果成功了,一定要记得关闭返回Response的Body,否则会占用一个连接。
全局变量和函数
var c *elasticsearch.Client
func ini ...
R包对植物进行GO,KEGG注释
1、安装,加载所用到到R包
用BiocManager安装,可同时加载依赖包
source("https://bioconductor.org/biocLite.R")
BiocManager::install("clusterProfiler")
library(clusterProfiler) ##富集分析library(topGO) ###画GO图library(AnnotationHub) ##获取数据库library(BiocFileCache) ##依赖包library(dbplyr) ...
Go语言fmt.Printf使用指南
Go语言fmt.Printf使用指南
fmt标准库是我们在学习Go语言过程中接触最早最频繁的一个了,本文介绍了fmtb包的一些常用函数。
fmt
fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。
向外输出
标准库fmt提供了以下几种输出相关函数。
Print
Print系列函数会将内容输出到系 ...
go代理设置
在Go 1.13中,我们可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理。
设置GOPROXY代理:
go env -w GOPROXY=https://goproxy.cn,direct
设置GOPRIVATE来跳过私有库,比如常用的Gitlab或Gitee,中间使用逗号分隔:
go env -w GOPRIVATE=*.gitlab.com,*.gitee.com
如果在运行go mod vendor时,提示Get ...
Go语言学习(一),Windows下安装配置Go语言的配置环境
Go语言学习,有两个重要部分,一是安装Go语言包,二是安装开发的编译器。
本篇博客借助(https://www.cnblogs.com/qicun/p/11378354.html)完成的,如有需要,请移步原链接
一、go语言的安装包在网址(https://golang.google.cn/dl/)下载,
下载完成后,直接安装,一直下一步就行,会出更改安装位置的选项,
可以 ...
深入Go的错误处理机制使用
开篇词
程序运行过程中不可避免的发生各种错误,要想让自己的程序保持较高的健壮性,那么异常,错误处理是需要考虑周全的,每个编程语言提供了一套自己的异常错误处理机制,在Go中,你知道了吗?接下来我们一起看看Go的异常错误机制。
Go错误处理,函数多返回值是前提
首先我们得明确一点,Go是支持多返回值的,如下,sum函 ...
使用 go protoc --go_out 输出的 *.pb.go文件时报 undefined: proto.ProtoPackageIsVersion3
事情是这样的:我参考go的 grpc 实现 https://grpc.io/docs/quickstart/go/
Download the example
The grpc code that was fetched with go get google.golang.org/grpc also contains the examples. They can be found under the examples dir: $GOPATH/src/google.golang.org/grpc/examples.
根据 ...
聊一聊 Go 语言的接口
楔子
当你使用 Go 一段时间之后,肯定会发现一个问题:那就是 Go 对类型的检查太严格了。当然这是一件好事,可以避免我们犯错误,但有些时候我们需要一个变量能够接收不同类型的值。比如在定义函数参数的时候,我们希望参数可以接收多种类型的值,那么这个时候该怎么做呢?
为了解决这一问题,Go 为我们提供了 interface{} ...
go使用go-redis操作redis 连接类型,pipline, 发布订阅
内容:
一 . 客户端Client(普通模式,主从模式,哨兵模式)二. conn连接(连接, pipline, 发布订阅等)三. 示例程序(连接, pipline, 发布订阅等)客户端Client 普通模式的客户端go redis依据用途提供了多种客户端创建的函数, 如下:
func NewClient(opt *Options) *Clientfunc NewFailoverClient(failoverOpt *FailoverO ...
go 文件读写
go 文件读写有很多方式
ioutil读文件
package main
import (
"io/ioutil"
"fmt"
)
func main() {
data,err := ioutil.ReadFile("a.txt") #这里返回的data是一个字节切片
if err!=nil{
fmt.Println("File reading error", err)
}
fmt.Println(string(data))
}
ioutil写文件
package m ...
深度解密Go语言之 scheduler
目录前置知识os scheduler线程切换函数调用过程分析goroutine 是怎么工作的什么是 goroutinegoroutine 和 thread 的区别M:N 模型什么是 scheduler为什么要 schedulerscheduler 底层原理总览goroutine 调度时机work stealing同步/异步系统调用scheduler 的陷阱总结参考资料
好久不见,你还好吗?距离上一篇文章已经过去了一 ...
Go安装与Goland破解永久版
一、go安装
1、建议去go语言中文网下载,网址:https://studygolang.com/dl ,下图是下载页面及包介绍
2、Windows版安装
3、在cmd命令行窗口输入“go version”可以查看当前Go版本,用以检测是否安装成功
4、在任意盘里新建文件夹GoWorks,里面再新建三个文件夹: bin、src、pkg
5、把GoWorks添加到环境变量中 ...
Go入门:创建第一个Go工程
前言
我是一名iOS开发.
因为公司后台都用的Go.
因为对服务端不了解.
所以想自己学习学习.
环境
因为自己的电脑是mac.然后在阿里云买的是centOS的服务器.
所以下面搭建的环境都是在centOS系统和MacOS系统下的.
一.学习资料
慕课网Go视频教程
GitHub实战教程19000星
beego教程
go视频教程
二.安装
1.1.安装包安装
Go官网下 ...
Go语言学习——如何实现一个过滤器
1、过滤器使用场景
做业务的时候我们经常要使用过滤器或者拦截器(听这口音就是从Java过来的)。常见的场景如一个HTTP请求,需要经过鉴权过滤器、白名单校验过滤、参数验证过滤器等重重关卡最终拿到数据。
Java使用过滤器很简单。XML时代,只要添加一个过滤器配置再新建一个实现了Filter接口的xxxFilter实现类;Jav ...
Go组件学习——database/sql数据库连接池你用对了吗
1、案例
case1: maxOpenConns > 1
func fewConns() {
db, _ := db.Open("mysql", "root:rootroot@/dqm?charset=utf8&parseTime=True&loc=Local")
db.SetMaxOpenConns(10)
rows, err := db.Query("select * from test where name = 'jackie' limit 10")
if err != nil {
fmt.Println("query error")
}
row, _ := ...
Go数组和切片你不知道的区别
开篇语
数组和切片是两种不同的数据结构,比较常见,在Go语言中同时存在,今天我们就一起来看看他们在使用方式上,原理上的一些区别?
数组
在Go语言中,数组是一种具有相同类型固定大小的一种数据结构。
我们先来看看数组的使用,数组类型声明时的方式是 []T ,前面的[]指定数组的大小,T指定数组的类型,如下我们声明了一 ...
Go中的Package和Module分析
Package
所谓package(包)其实就是代码的一种组织管理方式,代码多了就需要放入文件,文件多了就需要归类放入文件夹,就好比我们在给电脑装软件时会进行归类安装,其实也是有意无意对电脑软件安装的一种管理方式。那么不同的go文件交给不同的package管理时,如果A package需要引用 B package中的文件时go是怎么处理的?基于 ...
Go语言(环境的搭建)
一步一步,从零搭建Go语言开发环境。
安装Go语言及搭建Go语言开发环境
下载
下载地址
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
版本的选择
Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。
安装
Windows安装
此安装实例以 64位Win10系统安 ...
使用 client-go 实现 k8s webshell
更好的阅读体验建议点击下方原文链接。
原文地址:http://maoqide.live/post/cloud/kubernetes-webshell/
通过 client-go 提供的方法,实现通过网页进入 kubernetes pod 的终端操作。
client-go remotecommand
websocket
xterm.js
remotecommand
k8s.io/client-go/tools/remotecommand kubernetes client-go 提供的 rem ...
Go ---- defer 和 return 执行的先后顺序
Go 中 defer 和 return 执行的先后顺序
多个defer的执行顺序为“后进先出”;
defer、return、返回值三者的执行逻辑应该是:return最先执行,return负责将结果写入返回值中;接着defer开始执行一些收尾工作;最后函数携带当前返回值退出。
如果函数的返回值是无名的(不带命名返回值),则go语言会在执行retur ...