Golang系列学习
Golang系列相关笔记
胡伟煌
容器云相关生态技术研究(Docker,Kubernetes等)
展开
-
Golang系列(一)之顺序编程
一、初识Go语言(一)概述一个在语言层面实现了并发机制的类C通用型编程语言。(二)Go关键字(25个) 类别 关键字 说明 程序声明 package,import 包的声明和导入 声明与定义 var,const 变量和常量的声明 type 用于定义类型 复合数据类型 struct 定义结构体...原创 2017-11-02 22:04:54 · 1559 阅读 · 0 评论 -
Golang系列(二)之面向对象编程
面向对象编程: 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)[方法的重写,子类不同于父类的特性]/泛化(generalization)[共性,子类都拥有父类的特性],通过多态(polymorph原创 2016-12-17 18:11:30 · 5632 阅读 · 1 评论 -
Golang系列(三)之并发编程
(一)并发基础1.概念并发意味着程序在运行时有多个执行上下文,对应多个调用栈。并发与并行的区别:并发的主流实现模型:实现模型说明特点多进程操作系统层面的并发模式处理简单,互不影响,但开销大多线程系统层面的并发模式有效,开销较大,高并发时影响效率基于回调的非阻塞/异步IO多用于高并发服务器开发中编程复杂,开销小协程用户态线程,不需要操作系统抢占调度,寄存于线程中编程简单,结构简单,开销极小,但需要语...原创 2017-07-09 11:42:18 · 2953 阅读 · 3 评论 -
Golang系列(四)之面向接口编程
1. 接口[多态]多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简而言之,就是允许将子类类型的指针赋值给父类类型的指针。即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。不修改程序代码就可以改变程原创 2018-01-13 23:22:41 · 10774 阅读 · 0 评论 -
Golang系列(五)之Golang指针
1. 指针的概念 概念 说明 变量 是一种占位符,用于引用计算机的内存地址。可理解为内存地址的标签 指针 表示内存地址,表示地址的指向。指针是一个指向另一个变量内存地址的值 & 取地址符,例如:{指针}:=&{变量} * 取值符,例如:{变量}:=*{指针}2. 内存地址说明2.1. 内存定义计算机的内存 RAM 可以把它想象成一些有序的盒子,一个接一个的排成原创 2017-09-07 12:52:06 · 19181 阅读 · 2 评论 -
Golang系列(六)之测试用例
1. Go中的测试框架Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,testing框架和其他语言中的测试框架类似,你可以基于这个框架写针对相应函数的测试用例,也可以基于该框架写相应的压力测试用例。2. 单元测试原则文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码你必须i原创 2017-08-13 10:42:59 · 4118 阅读 · 0 评论 -
Golang系列(七)之常用包
一、常用包常用包说明常用函数fmt实现格式化的输入输出操作,其中的fmt.Printf()和fmt.Println()是开发者使用最为频繁的函数。 io实现了一系列非平台相关的IO相关接口和实现,比如提供了对os中系统相关的IO功能的封装。我们在进行流式读写(比如读写文件)时,通常会原创 2016-12-17 18:15:10 · 7127 阅读 · 0 评论 -
Golang系列(八)之文本处理
1. JSON处理JSON是一种轻量级的数据交换语言。1.1. 解析JSON[Unmarshal(data []byte, v interface{})]1.1.1. Unmarshal源码/src/encoding/json/decode.gofunc Unmarshal(data []byte, v interface{}) error { // Check for well-forme原创 2017-09-10 15:22:08 · 3149 阅读 · 0 评论 -
Golang系列(九)之模板语法
1. 基本语法go 统一使用了 {{ 和 }} 作为左右标签,没有其他的标签符号。使用 . 来访问当前位置的上下文使用 $ 来引用当前模板根级的上下文使用 $var 来访问创建的变量模板中支持的 go 语言符号{{"string"}} // 一般 string{{`raw string`}} //原创 2017-08-13 10:29:21 · 8344 阅读 · 0 评论 -
Golang系列(十)之GDB调试
1. GDB简介GDB是FSF(自由软件基金会)发布的一个强大的类UNIX系统下的程序调试工具。使用GDB可以做如下事情:启动程序,可以按照开发者的自定义要求运行程序。可让被调试的程序在开发者设定的调置的断点处停住。(断点可以是条件表达式)当程序被停住时,可以检查此时程序中所发生的事。动态的改变当前程序的执行环境。目前支持调试Go程序的GDB版本必须大于7.1。编译原创 2017-08-13 10:40:45 · 17829 阅读 · 1 评论 -
Golang包管理工具(三)之dep的使用
更多golang包管理工具参考 - dep的使用 - glide的使用 - govendor的使用1. dep简介dep是一个golang项目的包管理工具,一般只需要2-3个命令就可以将go依赖包自动下载并归档到vendor的目录中。dep官网参考:https://github.com/golang/dep2. dep安装go get -u ...原创 2018-07-23 17:03:23 · 7326 阅读 · 0 评论 -
Golang包管理工具(一)之govendor的使用
本文个人博客地址为:http://www.huweihuang.com/article/golang/govendor-usage/ 本文个人博客地址为:https://huweihuang.net/article/golang/govendor-usage/ 更多golang包管理工具参考 golang包管理工具之glide的使用1. govendor简介golang工程的依...原创 2017-08-14 20:56:53 · 57758 阅读 · 1 评论 -
Golang包管理工具(二)之glide的使用
1. glide简介glide是一个golang项目的包管理工具,非常方便快捷,一般只需要2-3个命令就可以将go依赖包自动下载并归档到vendor的目录中。glide官网参考:https://glide.sh/2. glide安装go get github.com/Masterminds/glide3. glide使用#进入到项目目录cd /home/gopat原创 2018-01-14 20:01:29 · 7758 阅读 · 0 评论 -
beego web框架(一)beego介绍与使用
1. beego的使用1.1. beego的安装go get github.com/astaxie/beego1.2. beego的升级1、直接升级go get -u github.com/astaxie/beego原创 2017-07-30 12:14:28 · 17958 阅读 · 0 评论 -
beego web框架(二)之日志处理
1. 使用入门beego 的日志处理是基于 logs 模块搭建的,内置了一个变量 BeeLogger,默认已经是 logs.BeeLogger 类型,初始化了 console,也就是默认输出到 console。beego.Emergency("this is emergency")beego.Alert("this is alert")beego.Critical("this is critic原创 2017-09-10 17:52:58 · 21519 阅读 · 0 评论 -
GoLand同步插件配置
1.1. Gogland(GoLand)下载并安装Gogland,配置GOROOT和GOPATH,安装包见官网:http://www.jetbrains.com/go/download/1.2. 常用插件同步插件:Source SynchronizerRemote Hosts Access自动保存插件:File Watchers1.3. 设置同步到li...原创 2017-09-07 11:23:32 · 12335 阅读 · 0 评论 -
Go网络编程之net/http包执行流程源码分析
1. http包建立web服务器package mainimport ( "fmt" "log" "net/http" "strings")func sayhelloName(w http.ResponseWriter, r *http.Request) {原创 2017-07-30 15:11:03 · 4218 阅读 · 0 评论 -
JSON语法
1. JSON的语法JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组1.1. JSON名称/值对"name" : "value"1.2. JSON 值可以是:数字(整数或浮点数)字符串(在双引号中)逻辑值(true 或 false)数组(在中括号中)对象(原创 2017-09-16 19:50:52 · 1103 阅读 · 0 评论 -
Git详解
一、Git是什么(what)(一)概述Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统如果中央服务器宕机则会影响数据和协同开发。Git是分布式的版本控制系统,客户端不只是提取最新版本的快照,而且将整个代码仓库镜像复制下来。如果任何协同工作用的服务器发生故障了,也可以用任何一个代码仓库来恢复。而且在协作服务器宕机期间,你也可以提交代码到本地仓库,当协作服务器正常工作原创 2017-11-11 11:34:06 · 3548 阅读 · 0 评论