Go基础
易辰_
当你的能力撑不起你的野心的时候,你就静下心来努力学习
展开
-
golangWeb框架---github.com/gin-gonic/gin学习一(路由、多级路由、参数传递几种形式)
文章目录Gin介绍安装快速开始路径参数构造参数post传参get+post混合形式构造Map格式Gin介绍Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了1.0版本。具有快速灵活,容错方便等特点。其实对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错。框架更像是一些常用函数或者工具...原创 2018-09-19 20:46:01 · 23238 阅读 · 6 评论 -
golang基础-RPC结合Protobuf实例、GRPC实例
RPC、Protobuf相结合的例子golang基础-httprpc、jsonrpcgolang基础-protobuf使用RPC、Protobuf相结合的例子在简单的学习了RPC、Protobuf的规则之后,我们通过一个demo来学习下RPC、Protobuf是如何结合使用的 首先来看下这个demo的目录结构:先来看下rpc.proto是如何定...原创 2018-09-13 18:12:49 · 8149 阅读 · 0 评论 -
golang基础-Postgresql-ORM框架github.com/go-pg/pg学习四(其他)
文章目录通过主键查询查询所有关联查询查询是否存在、个数ForEach用法Relation一Relation二首先看下数据库中的数据go=# select * from users; id | name | emails ----+-------+---------------------------------- 1 | admin...原创 2018-09-18 21:02:52 · 1334 阅读 · 0 评论 -
golang基础-Postgresql-ORM框架github.com/go-pg/pg学习三(QueryOne、Query、Select用法)
文章目录数据准备QueryOne、Query用法select通过ID查询通过Apply添加Where过滤条件查询查询所有的记录获取查询记录的所有ID值golang基础-Postgresql-ORM框架github.com/go-pg/pg学习一(连接数据库、创建、删除表)golang基础-Postgresql-ORM框架github.com/go-pg/pg学习二(增删改)数据准备pack...原创 2018-09-18 16:00:40 · 4302 阅读 · 1 评论 -
golang基础-Postgresql-ORM框架github.com/go-pg/pg学习二(增删改)
创建表插入删除修改创建表在操作数据库的增删改查之前,我们先创建数据库表 这里就直接贴出代码来,如果有疑问可以参考我下面的博客: golang基础-Postgresql-ORM框架github.com/go-pg/pg学习一(连接数据库、创建、删除表)package mainimport ( "fmt&a原创 2018-09-17 19:00:33 · 5386 阅读 · 0 评论 -
golang基础-数组指针、new(T)、判断slice是否相等、map、结构体
数组指针new(T)判断slice是否相等数组指针package mainimport "fmt"func zero1(ptr *[4]int) { for i := range ptr { (*ptr)[i] = 1 }}func zero2(ptr *[4]int) { for i := range ptr ...原创 2018-09-10 11:50:02 · 3189 阅读 · 0 评论 -
golang基础-Postgresql-ORM框架github.com/go-pg/pg学习一(连接数据库、创建、删除表)
下载安装示例连接数据库创建数据库表删除表完整代码下载安装通过go get -u github.com/go-pg/pg进行安装,如果安装过程中出现如下的错误package golang.org/x/crypto/pbkdf2: unrecognized import path “golang.org/x/crypto/pbkdf2” (https ...原创 2018-09-17 12:59:12 · 5810 阅读 · 0 评论 -
golang基础-protobuf使用
安装go语言中的protobuf例子前些日子了解过python中protobuf python基础–protobuf的使用(一) python基础—protobuf的使用(还未完成) 参考资料: https://github.com/google/protobuf 以下的需要VPN翻墙 pythontutorial https://devel...原创 2018-09-12 11:27:24 · 4131 阅读 · 0 评论 -
golang基础-httprpc、jsonrpc
RPC定义http版本的RPC版jsonrpc版本的RPC版RPC定义RPC(Remote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络细节的应用程序通信协议。简单的说就是要像调用本地函数一样调用服务器的函数。RPC协议构建于TCP或UDP,或者是 HTTP之上,允许开发者直接调用另一台计算机上的...原创 2018-09-11 18:18:18 · 2645 阅读 · 0 评论 -
golang基础- ElasticSearch搜索引擎、kibana可视化工具、向ES输出数据
安装ElasticSearch安装kibana向es输出数据安装ElasticSearch1、下载ES,下载地:https://www.elastic.co/downloads 2、修改config/elasticsearch.ymal配置 cluster.name: my-application node.name: node-1 network.host: 192.168.21.17原创 2017-11-27 18:36:28 · 10927 阅读 · 4 评论 -
golang基础-beego读取配置_输出log日志、tailf组件读取log、配置zookeeper_kafka、发送log至kafka
1加载配置文件loadConf封装结构体2初始化beego的log组件3初始化tailf4初始化kafka5tailf读取6发送数据kafka7启动zookeeperkafka测试8查看测试效果代码区在前面3篇博文中已经学习了golang基础-tailf日志组件使用golang基础-beego读取配置、log日志输出 golang基础-kafka、zookeeper搭建、go终端发送原创 2017-11-21 18:33:05 · 3393 阅读 · 0 评论 -
golang基础-WaitGroup、kafka消费者
WaitGroupkafka消费者WaitGroupWaitGroup在go语言中,用于线程同步,单从字面意思理解,wait等待的意思,group组、团队的意思,WaitGroup就是指等待一组,等待一个系列执行完成后才会继续向下执行。package mainimport ( "fmt" "sync" "time")func main() { wg := sync原创 2017-11-25 16:04:39 · 3853 阅读 · 2 评论 -
golang基础-kafka、zookeeper搭建、go终端发送数据给kafka
zookeeper搭建kafka搭建kafka链接zookeeper在go终端写入kafkazookeeper搭建1、安装JAVA-JDK,从oracle下载最新的SDK安装(我用的是1.8的) 2、安装zookeeper3.3.6,下载地址:http://apache.fayea.com/zookeeper/ 3、重命名conf/zoo_sample.cfg 为conf/zoo.cfg原创 2017-11-18 20:30:20 · 5031 阅读 · 0 评论 -
golang基础-beego_web开发、模板使用(待续)
beego开发Beego web开发 1、规划好ur 2、添加路由 3、开发controller,继承beego.Controller看看本例的结构图main\main.go 初始化beego,引入router模块package mainimport ( _ "beego_example/router" "github.com/astaxie/beego")func mai原创 2017-11-26 17:34:23 · 1549 阅读 · 0 评论 -
golang基础-redis使用
redis安装安装完毕后解压目录如下 点击redis-server.exe启动redis 然后在启动cmd客户端 set类型package mainimport ( "fmt" "github.com/garyburd/redigo/redis")func main() { var p *int var a int原创 2017-12-02 10:14:08 · 594 阅读 · 0 评论 -
golang基础-Postgresql使用、Go中使用PostgreSQL(github.com/lib/pq学习)
postgresql介绍postgresql安装使用(mac下)Go中使用PostgreSQL(github.com/lib/pq学习)连接postgres查询postgres单条查询QueryRow插入修改删除postgresql介绍官网 https://www.postgresql.org/PostgreSQL is a powerf...原创 2018-09-14 18:43:23 · 20429 阅读 · 6 评论 -
golang基础-https://github.com/go-redis/redis使用
文章目录安装连接例子安装1、利用默认的配置文件Mac通过brew install redis 安装即可然后直接通过 /usr/local/Cellar/redis/4.0.9/bin/redis-server启动即可2、配置文件以下是我另外一个redis实例的配置文件zhiliaodeMBP:conf zhiliao$ cat zldd-redis-session bind 127...原创 2018-09-25 15:32:10 · 8645 阅读 · 0 评论 -
golang基础--gopkg.in/olivere/elastic.v5学习一(环境配置、链接、增加删除索引)
文章目录环境配置安装elasticsearch安装Java SDK安装分词器安装elasticdump数据迁移启动测试运行名词概念、查看index、查看type使用gopkg.in/olivere/elastic.v5链接环境配置环境依赖:操作系统:Mac go:go1.11 ElasticSearch:5.6.9 Java:1.8 elasticdump elasti...原创 2018-09-25 19:33:17 · 9674 阅读 · 1 评论 -
golang基础-chain的使用、range、select
文章目录chan基础使用range获取select多队列chan基础使用我们直接来看代码package mainimport ( "fmt" "time")var message = make(chan string)func go1(){ message <- "hello1" message <- "hello2" message <- "he原创 2018-12-21 23:16:17 · 5388 阅读 · 4 评论 -
golang基础-http请求的几种方式
文章目录发送get请求解析post的方式解析json对象解析以表单的方式提交postform数据简单粗暴,直接上代码发送get请求func main() { http.HandleFunc("/test1",test1) http.HandleFunc("/t_test1",t_test1) http.ListenAndServe("0.0.0.0:9999",nil)}f...原创 2018-12-01 14:25:34 · 3595 阅读 · 0 评论 -
golang基础-排序sort
文章目录简单排序查询自定义排序结构体类型的排序(一)结构体类型的排序(二)简单排序基本类型 int、float64、string 的排序[]int、[]float64、[]string排序 intList := [] int {2, 4, 3, 5, 7} float8List := [] float64 {4.2, 5.9, 12.3, 10.0} stringList := [...原创 2018-12-01 00:56:03 · 1469 阅读 · 0 评论 -
golang基础--image/draw渲染图片、利用golang/freetype库在图片上生成文字
文章目录需求安装依赖逻辑效果图实例需求在一张A4纸上,利用image/draw标准库生成4张二维码,和该二维码的客户信息1、二维码生成利用到的库就是image/draw,通过draw.Draw进行写入2、然后字体渲染利用了golang/freetype开源库https://github.com/golang/freetype/blob/master/example/freetype/ma...原创 2018-11-05 16:37:14 · 19059 阅读 · 1 评论 -
golang基础-Postgresql-ORM框架github.com/go-pg/pg学习五(实战)
文章目录接口介绍接口代码golang基础-Postgresql-ORM框架github.com/go-pg/pg学习一(连接数据库、创建、删除表)golang基础-Postgresql-ORM框架github.com/go-pg/pg学习二(增删改)golang基础-Postgresql-ORM框架github.com/go-pg/pg学习三(QueryOne、Query、Select用法)...原创 2018-11-07 11:41:18 · 2825 阅读 · 1 评论 -
从2015-02-27开始第一篇CSDN博客 截止到今天2018-11-07日博客终于写了700篇了
从2015-02-27开始第一篇CSDN博客截止到今天2018-11-07日博客终于写了700篇了当你的才华还撑不起你的野心的时候、你就应该静下心来学习原创 2018-11-07 09:56:26 · 393 阅读 · 0 评论 -
golang基础--时间戳、时间字符串、时间对象相互转化
目前只是时间戳、时间字符串、时间对象相互转化后续如果有需求,在完善该时间工具类package mainimport ( "fmt" "time")func main() { Str2Time:=Str2Time("2017-09-12 12:03:40") fmt.Println(Str2Time) Str2Stamp:=Str2Stamp("2017-09-12 ...原创 2018-11-06 17:51:44 · 7774 阅读 · 0 评论 -
golangWeb框架---github.com/gin-gonic/gin学习八(监听多端口、多类型的struct模型绑定)
文章目录监听多端口自定义的struct绑定form-data监听多端口如何利用gin实现监听多端口package mainimport ( "log" "net/http" "time" "github.com/gin-gonic/gin" "golang.org/x/sync/errgroup")var ( g errgroup.Group)func rout...原创 2018-09-21 21:09:09 · 2747 阅读 · 0 评论 -
golangWeb框架---github.com/gin-gonic/gin学习七(重定向、中间件Goroutines、http自定义配置)
文章目录重定向服务器内部重定向中间件中间件内部的GoroutinesHTTP自定义配置重定向package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { router := gin.Default() router.GET("/raw", func(c *gin.Context) { c...原创 2018-09-21 18:05:27 · 2948 阅读 · 1 评论 -
golangWeb框架---github.com/gin-gonic/gin学习六(静态文件、模版、模版函数)
文章目录静态文件下载服务端文件模版语言(1)模版语言(2)自定义模版函数静态文件package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { router := gin.Default() router.Static("/assets", "./assets") router.Static...原创 2018-09-21 14:11:13 · 10049 阅读 · 2 评论 -
golang基础--gopkg.in/olivere/elastic.v5学习二(增删改查document)
import leancloud通过leancloud.Object.extend方式“”” { “words”: “Hello World!”, “ACL”: { “*”: { “read”: true, “write”: true } }, “objectId”: “5b1fb6992f301e00390f8...原创 2018-09-26 12:10:27 · 6737 阅读 · 1 评论 -
golangWeb框架---github.com/gin-gonic/gin学习五(模版渲染、返回数据的格式)
文章目录Bind HTML checkboxesMultipart/Urlencoded 绑定XML, JSON, YAML and ProtoBuf renderingjsonxmlyamlProtoBufBind HTML checkboxes学web最起码要搞一个浏览器get请求后端,然后后端渲染html页面,然后提交post请求,然后后端返回结果代码很简单直接上后端代码packag...原创 2018-09-20 20:23:43 · 3864 阅读 · 0 评论 -
golangWeb框架---github.com/gin-gonic/gin学习四(模型绑定、自定义校验、ShouldBindXXX、BindXXX)
文章目录模型绑定、校验模型绑定、校验以下来自百度翻译:若要将请求体绑定到类型,请使用模型绑定。我们目前支持JSON、XML和标准表单值的绑定(Foo= Bar和Bo.BAZ)。GIN使用Go PooWorks/Valual.V8进行验证。在这里查看标签使用的完整文档。注意,需要在所有要绑定的字段上设置相应的绑定标记。例如,当从JSON绑定时,设置JSON:“FieldNeX”。类型——...原创 2018-09-20 17:50:36 · 19264 阅读 · 0 评论 -
golangWeb框架---github.com/gin-gonic/gin学习三(路由多视图函数、中间件、log日志)
文章目录gin.New路由包含多个HandlerFunc函数使用中间件如何写log日志gin.New我们之前的例子都是利用了gin.Default(),那么gin.New()跟它有什么区别?来简单看下源码gin.Default()源码如下func Default() *Engine { debugPrintWARNINGDefault() engine := New() engine...原创 2018-09-20 14:39:08 · 2914 阅读 · 0 评论 -
golangWeb框架---github.com/gin-gonic/gin学习二(文件上传、多文件上传)
文章目录上传单个文件(一)上传单个文件(二)上传多个文件关于如何实现Gin框架上传单个文件、多个文件的案例上传单个文件(一)package mainimport ( &amp;quot;github.com/gin-gonic/gin&amp;quot; &amp;quot;io&amp;quot; &amp;quot;log&amp;quot; &amp;qu原创 2018-09-20 10:49:55 · 4160 阅读 · 0 评论 -
golang基础-etcd介绍与使用、etcd存取值、etcd监测数据写入
etcd介绍与使用etcd测试链接etcd存取值etcd检测Watchetcd介绍与使用概念:高可用的分布式key-value存储,可以用于配置共享和服务发现。 类似项目:zookeeper和consul 开发语言:Go 接口:提供restful的http接口,使用简单 实现算法:基于raft算法的强一致性、高可用的服务存储目录etcd搭建 a. 下载etcd release版本:h原创 2017-11-22 22:50:40 · 19882 阅读 · 1 评论 -
golang基础-网络请求WithTimeout、上下文withValue、withCancel、WithDeadline
在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的token、请求的截止时间。 当一个请求被取消或超时时,所有用来处理该请求的 goroutine 都应该原创 2017-11-21 21:29:14 · 8904 阅读 · 1 评论 -
golang基础-结构体tag、匿名字段、结构体的方法(作用域)、继承、String()方法
struct中的tag我们可以为struct中的每个字段,写上一个tag。这个tag可以通过反射的 机制获取到,最常用的场景就是json序列化和反序列化package mainimport "fmt"import "encoding/json"type student struct { Name string `json:"stu_name"` Age int}func mai原创 2017-10-29 21:29:42 · 3279 阅读 · 0 评论 -
golang基础-函数是变量、自定义type、命名返回值、可变参、defer、匿名
函数是一个变量类型package mainimport("fmt")func main() { c := add fmt.Println(c) sum := c(10, 20) fmt.Println(sum)}func add(a, b int) int { return a + b}输出如下:0x488a0030自定原创 2017-10-22 20:09:05 · 1699 阅读 · 0 评论 -
golang基础-变常量、值互换、数据类型、键盘输入、格式化、字符串
函数声明格式package mainimport("fmt" // _ "pck1")func method1(){ fmt.Println("method1")}func method2(a int) int { return a}func method3(a int , b int ) int { return a + b}func method4(a i原创 2017-10-21 16:26:17 · 696 阅读 · 0 评论 -
golang基础-字符串、日期、指针、流程
字符串package mainimport("fmt""strings""strconv")func main(){ var str string = "hello hello world abc" ////是不是以某个字符串开头 cc:=strings.HasPrefix(str,"http://") fmt.Println(cc) //是不是以某个字符原创 2017-10-22 13:18:00 · 717 阅读 · 0 评论 -
golang基础-双链表、别名、自定义构造函数
双链表type Student struct { Name string Next* Student Prev* Student}如果有两个指针分别指向前一个节点和后一个节点,我们叫做双链表package mainimport "fmt"type Student struct { Name string Age int Sco原创 2017-10-29 20:20:04 · 1261 阅读 · 0 评论