Golang
文章平均质量分 71
_noname
Ideas worth spreading.
展开
-
Linux下安装go1.7.3
curl -O https://storage.googleapis.com/golang/go1.7.3.linux-amd64.tar.gztar -C /usr/local -zxvf go1.7.3.linux-amd64.tar.gzmkdir -p ~/goecho "export GOPATH=$HOME/go" >> ~/.bashrcecho "export PATH=$原创 2016-11-23 21:15:15 · 2634 阅读 · 1 评论 -
go slice
概念Slice切片是对底层数组Array的封装,在内存中的存储本质就是数组,体现为连续的内存块,Go语言中的数组定义之后,长度就已经固定了,在使用过程中并不能改变其长度,而Slice就可以看做一个长度可变的数组进行使用,最为关键的,是数组在使用的过程中都是值传递,将一个数组赋值给一个新变量或作为方法参数传递时,是将源数组在内存中完全复制了一份,而不是引用源数组在内存中的地址,为了满足内存空转载 2017-03-06 17:25:27 · 359 阅读 · 0 评论 -
go coroutine goroutine
简介 多核处理器越来越普及,那有没有一种简单的办法,能够让我们写的软件释放多核的威力?答案是:Yes。随着Golang, Erlang, Scale等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式需要有一个极其简洁的内核,还有在此之 上丰富的外延,可以解决现实世界中各种各样的问题。本文以GO语言为例,解释其中内核、外延。转载 2017-03-09 14:50:53 · 793 阅读 · 0 评论 -
go reflect
------------------------------------------------------------ 在 reflect 包中,主要通过两个函数 TypeOf() 和 ValueOf() 实现反射,TypeOf() 获取到的结果是 reflect.Type 类型,ValueOf() 获取到的结果是 reflect.Value 类型,这两种类型都有很多方法可以进一步获取相关转载 2017-03-08 17:49:07 · 798 阅读 · 0 评论 -
Go 依赖管理
Golang包管理工具glide简介前言Golang是一个十分有趣,简洁而有力的开发语言,用来开发并发/并行程序是一件很愉快的事情。在这里我感受到了其中一些好处:没有少了许多代码格式风格的争论,强制统一的风格多好;编译速度超快,再也不用等待许久,才能编译完工程(测试驱动开发自然更爽);也不会出现同一个项目组中的人,在使用同一个语言的不同子集。但这种情况不论是在C#还是在转载 2017-03-08 15:37:34 · 7276 阅读 · 0 评论 -
Go 面向对象扩展——接口
简单地说 Interface是一组Method的组合,可以通过Interface来定义对象的一组行为。如果某个对象实现了某个接口的所有方法,就表示它实现了该借口,无需显式地在该类型上添加接口说明。Interface是一个方法的集合,它里面没有其他类型变量,而且Method只用定义原型 不用实现①接口定义1.命名时习惯以"er"结尾,如Printer Reader Wri转载 2017-03-08 15:07:45 · 596 阅读 · 0 评论 -
Go 函数式编程(闭包)
一 函数式编程概论在过去近十年时间里,面向对象编程大行其道,以至于在大学的教育里,老师也只会教给我们两种编程模型,面向过程和面向对象。孰不知,在面向对象思想产生之前,函数式编程已经有了数十年的历史。就让我们回顾这个古老又现代的编程模型,看看究竟是什么魔力将这个概念在21世纪的今天再次拉入我们的视野。随着硬件性能的提升以及编译技术和虚拟机技术的改进,一些曾被性能问题所限制的动态语言开转载 2017-03-08 14:24:02 · 814 阅读 · 0 评论 -
go error panic deffer recover
①error接口Go语言中的error类型实际上是抽象了Error()方法的error接口type error interface { Error() string}Go语言使用该接口进行标准的错误处理。对于大多数函数,如果要返回错误,大致上都可以定义为如下模式,将error作为多种返回值中的最后一个,但这并非是强制要求:func Foo(转载 2017-03-08 11:32:17 · 478 阅读 · 1 评论 -
go map
哈希表是计算机里面比较重要的一个数据结构, 虽然各个哈希表的实现不同, 但是基本上不同的实现都提供快速的增、删、改、查功能。 go语言用map来提供哈希表的功能。声明和初始化go语言的map有如下的形式: map[KeyType]ValueType 其中, 要求KeyType必须是 可以比较的( 可以使用==和!=号), ValueType可以是任何类型, 当然这个任转载 2017-03-08 09:59:11 · 769 阅读 · 0 评论 -
Go语言操作json
下面是一段Go语言生成JSON的例子:[cpp] view plain copypackage main import ( "fmt" "encoding/json" ) type Person struct { name string age int原创 2017-01-24 18:35:21 · 564 阅读 · 0 评论 -
Go学习笔记-Go语言数组array和切片slice
##Go 语言中定义数组主要包括以下四种形式:var []var = []{元素1, 元素2, …}var [] = […]{元素1, 元素2, …}var [] = […]{索引1: 元素1, 索引2: 元素2, …}在数组定义完成之后,可以通过索引来操作数组中的元素:[] = = []*****func main() {var a [2]int原创 2016-12-06 04:01:58 · 4410 阅读 · 1 评论 -
Go学习笔记-go语言基础
Go 语言共有 25 个关键字,全部为小写:break default func interfaceselectcase defer go map structchan else goto package switchconst fallthroughif rangetypecontinue for import return v原创 2016-12-04 23:26:50 · 1704 阅读 · 0 评论 -
Go开发环境的搭建
1.什么是Go语言官方网站:http://golang.orgGo 语言是一门系统编程语言基本属性:1)编译型语言:类型安全,将大多数错误消灭在编译阶段2)自带垃圾回收:内存安全,无需手动操作管理内存3)内置并发支持:以非常直观的代码和极低的代价实现高并发4)UTF-8 编码:代码支持任意 UTF-8 字符附加属性:1)快速编译:解决 C 语言中头文件太多导致的原创 2016-12-03 03:36:23 · 927 阅读 · 0 评论 -
使用vendor管理Golang项目依赖
The Vendor Tool for Gogo get -u github.com/kardianos/govendorNew users please read theFAQPackage developers should read thedeveloper guide.For a high level overview read thewhitepaper原创 2017-02-23 20:45:22 · 17872 阅读 · 2 评论