golang interface 接口介绍

[TOC] golang interface 接口介绍 interface 介绍 如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键。在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。 Go不是一种典型的OO语言,它在语法上不支持类和继承的概念。 没有继承是否就无法拥有多态行为了呢?答案是否定的,Go语言引入了一种新类型—Interface,它在效果上实现了类似于C++的“多态”概念,虽然与C++的多态...阅读全文

简书 2017.09.23 01:04* 吴德宝

Golang Context分析

[TOC] Golang Context分析 Context背景 和 适用场景 golang在1.6.2的时候还没有自己的context,在1.7的版本中就把golang.org/x/net/context包被加入到了官方的库中。golang 的 Context包,是专门用来简化对于处理单个请求的多个goroutine之间与请求域的数据、取消信号、截止时间等相关操作,这些操作可能涉及多个 API 调用。 比如有一个网络请求Request,每个Request都需要开启一个goroutine做一些事...阅读全文

简书 2017.09.23 01:07 吴德宝

golang如何执行脚本并获取返回值

golang中如何执行脚本并获取返回值 调用脚本 在golang标准库中提供了两种方式可以用来启动进程调用脚本 第一种是在os库中的Process类型,Process类型包含一系列方法用来启动进程并对进程进行操作(参考: https://golang.org/pkg/os/#Process) 第二种是在os/exec库种通过Cmd类型的各个函数实现对脚本的调用,实际上Cmd是对Process中各种方法的高层次封装(参考: https://golang.org/pkg/os/exec/) 示例 使...阅读全文

开源中国博客 2017-09-22 22:03:22 RichardFan

golang Hook

简介 这篇文章主要是通过官方提供的 HTTP 追踪来学习使用 Hook 的编程思想。 在了解使用 Go 语言编写 Hook 之前,最好先掌握 Context 的用法, go 1.7 中 context 已经进入标准库 context,直接 import "context" 就可以使用。 在标准库 context.go 中, Context 定义为一个 interface{} 接口类型。 // A Context carries a deadline, a cancelation signal, ...阅读全文

window10安装mongodb

# window10安装mongodb ## 下载mongodb [mongoDB官网](http://www.mongodb.org/) [直接下载zip包](http://dl.mongodb.org/dl/win32/x86_64) ## 安装mongodb 1. 创建文件路径:D:\mongodb 2. 将刚刚下载的zip解压在mongodb,修改文件夹名为bin 3. 然后在D:\mongodb下新建文件夹data 4. 在data下建立文件夹db,log 5. ...阅读全文

Go语言中文网 2017-09-22 17:47:35 sheshue

Golang

golang 安装: http://studygolang.com/articles/1605 http://www.cnblogs.com/linuxprobe/p/5654380.html 参考:go语言编程 变量 声明 var v1 int var v2 string var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { f int } var v6 *int // 指针 var v7 map[string]int // map...阅读全文

博客园 2017-09-21 17:49 gaojy

Golang 中使用多维 map

http://tnt.wicast.tk/2015/11/02/golang-multiple-dimension-map/ Golang 的 XML/JSON 解析库乍看使用起来很方便,只要构造一样结构的 Struct 就可以一下子导入到变量中去了.其实手工构造 Struct 非常容易出现结构偏差,而且最要命的是 Unmarshal() 执行的时候不是严格导入所以没有任何报错. 于是这两天写了一个给 Golang 用的 XML to Struct 生成器,希望能一劳永逸. 不过在制作过程中有遇...阅读全文

博客园 2017-09-21 11:46 grimm

【Golang】如何统一处理HTTP请求中的异常捕获

最近写GOLANG项目,不使用框架,路由选择httprouter 现在想实现一个需求:在不修改httprouter源码的前提下,对所有注册的路由handle进行异常捕获。 大家都知道golang使用panic()产生异常,然后可以recover()来捕获到异常,否则主程序直接宕掉,这是我们不希望看到的。 或者全程检查error,不主动抛出异常。即便这样,可能异常依然不能避免。 既然要recover(),但又不想在每个handle里面都去recover()一遍,如果你也有这样的需求,下面讲到的可能...阅读全文

高性能NoSql数据库 SSDB

今天在看一个开源项目的时候,发现作者使用一个ssdb的数据库,第一反应是ssd硬盘,当时很诧异。后面了解后才知道,原来是 nosql数据库。 ssdb介绍 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis. SSDB 是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持 KV, list, map(hash), zset(sorted set) 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据.SSDB 具有和 Redis 相似的 API...阅读全文

简书 2017.09.22 00:25 若与

Go环境的搭建

前言: Go语言是一种比较新的语言,上网了解了一下,感觉未来趋势还是很不错的,所以准备开始自学go,顺便记录一下,不喜勿喷,有什么说的不正确的,欢迎指正!1:环境搭建我个人觉得 jetbrains公司出的ide是挺好用的,不管是intellij,还是clion,都有在用,觉得还是挺不错的,即时是Android Studio,也是基于intellij ide的,所以个人还是喜欢这公司出的IDE先下载Golang的 IDE,地址:https://www.jetbrains.com/go/downlo...阅读全文

简书 2017.09.21 23:12* Link_Biao

Go语言fmt包Printf方法详解

Go语言的标准输出流在打印到屏幕时有些参数跟别的语言(比如C#和Java)不同,下面是我整理的一些常用的格式化输入操作。 General %v 以默认的方式打印变量的值 %T 打印变量的类型 Integer %+d 带符号的整型,fmt.Printf("%+d", 255)输出+255 %q 打印单引号 %o 不带零的八进制 %#o 带零的八进制 %x 小写的十六进制 %X 大写的十六进制 %#x 带0x的十六进制 %U 打印Unicode字符 %#U 打印带字符的Unicode %b 打印整型...阅读全文

win10下golang使用protobuf

json与protobuf做数据传输对比: json用起来的确很方便。但相对于protobuf数据量更大些。做一个移动端应用,为用户省点流量还是很有必要的。正好也可以学习一下protobuf的使用 0、跟Json相比,protobuf 的优缺点: 优点: 性能更高,更加规范; 编解码速度快,数据体积小; 使用统一的规范,不用再担心大小写不同导致解析失败等问题。 缺点: 失去了一些便利性; 改动协议字段,需要重新生成文件; 数据没有可读性; 1、安装protobuf库文件 方法(1)使用go ge...阅读全文

简书 2017.09.21 17:37 Gospel元嘉

Golang视角下的设计模式

这篇文章想聊聊Golang语言下的设计模式问题,我觉得这个话题还是比较有意思的。Golang没有像java那样对设计模式疯狂的迷恋,而是摆出了一份“看庭前花开花落,望天空云卷云舒”的姿态。 单例模式: Gloang的单例模式该怎么写?随手写一个,不错,立马写出来了。但这个代码有什么问题呢?多个协程同时执行这段代码就会出现问题:instance可能会被赋值多次,这段代码是线程不安全的代码。那么如何保证在多线程下只执行一次呢?条件反射:加锁。。。加锁是可以解决问题。但不是最优的方案,因为如果有1W并...阅读全文

基于Go语言构建的万亿级流量大数据平台架构

党合萱 硕士毕业于西安电子科技大学,曾就职于阿里云存储部门,主要从事存储服务相关功能的设计与开发工作。于2016年加入七牛云,主要负责流式计算与离线计算服务pipeline的架构和开发工作。目前pipeline承载公司每天超过千亿、超过百TB的数据处理。 今天的分享主要围绕七牛在最近一年时间里面开发的大数据平台进行展开,目前我们的平台已经承载了公司核心业务的运营;关于我们的产品,主要会从一个场景展开进行介绍,当中包含了我们在设计过程中遇到的挑战以及解决方案。也欢迎大家基于这些问题和我们展开交流与...阅读全文

简书 2017.09.21 17:24 NewTech观察圈

golang slice

#slice append 实现 s2 := append(s1, *) 切片s1上记录的切片信息复制给s2, 1.如果s1指向的底层array长度不够,append的过程会发生如下操作:内存中不仅新开辟一块区域存储append后的切片信息,而且需要新开辟一块区域存储底层array(复制原来的array至这块新array中),最后再append新数据进新array中,这样,s2指向新array。 2.如果s1指向的底层array长度够, s2和s1指向同一个array,append的结果是内存中...阅读全文

开源中国博客 2017-09-21 17:33:13 1071954237

2017年编程语言排行

现在学会一门编程语言就可以得到一份不错的工作,可以得到不错的薪资,可以过不错的生活。所以越来越多的人选择学习计算机编程语言,今天Java视频教程的讲师就给大家分析一下2017年编程语言排行榜,让学编程语言的朋友在心里有个底。 有人说程序员知识更新速度要很快,这是因为编程语言很容易就过时。这句话虽然有点绝对,但是也说明了热门的编程语言排行版一直在变。那么我们就来看一看2017年编程语言排行,了解一下2017年究竟哪些编程语言最值得学习、更高薪?下面请看Java视频教程讲师分享的内容:1、Java就...阅读全文

简书 2017.09.21 16:51 扣丁学堂

angular系列学习笔记(一)-聊聊angular的基础

现前端框架情况, angular、vue(比较火)、react。react因前段时间license协议,百度要求内部停止使用react。新的框架层出不穷:它难吗?它写得快吗?可维护性怎样?运行性能如何?社区如何?前景怎样?好就业吗?好招人吗?组建团队容易吗?不管哪个,选择一个实践就好。一、Angular 基础 1、AngularJS核心 AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML。AngularJS核心是:MVVM、模块化、自动化双向数据绑定、语义化标...阅读全文

简书 2017.09.21 16:06* 枫之伊信

HTTP状态码302、303和307的故事

今日读书,无法理解HTTP302、303、307状态码的来龙去脉,决定对其做深究并总结于本文。 《HTTP权威指南》第3章在讲解30X状态码时,完全没有讲清楚为什么要有302、303、307,以及他们的关系,一句“问题出在HTTP/1/1”让我一头雾水,莫名其妙;而第五章在讲重定向响应时,没有说到现在很常见的302,反而是说我从没遇到过的303和307。很是迷惑,对于这3个状态码,WiKi和RFC文档都有详解,下面我以我的思维添油加醋的描述一遍。 一、状态码——302 RFC1945(http:...阅读全文

数据告诉你,胡歌的微世界

使用神奇的数据采集工具——造数,爬取男神的微博 昨天胡歌(35岁)生日刚刚过去,各位胡椒粉有什么想说的呢,一路走来,有多少人知道胡歌最早是这样的: 当胡歌说道要先把饥寒问题管制时,许多粉丝心伤到眼泪都进去了。 爬微博原因:过去的生日胡歌都会发微博,那时候微博上是这样的: 2015年(33岁) 2014年(32岁) 2013年(31岁) 然而在2016年,胡歌发了这样一条微博 造数君爬取了老大的微博,做了一个简单的分析,当然啦,数据采集不光要告诉你能够采集到什么,还要一并教你怎么采集: 选用的是微...阅读全文

Segmentfault 2017-09-21 10:34:47 造数科技