-
Golang-interface(二 接口与nil)
所属栏目:[大数据] 日期:2020-12-16 热度:85
github:https://github.com/ZhangzheBJUT/blog/blob/master/nil.md 一 接口与nil 前面讲解了go语言中接口的基本使用方法,下面将说一说nil在接口中的使用。 从上面一节我们知道在底层,interface作为两个成员实现:一个类型和一个值。该值被称为接口的动态值[详细]
-
Golang-interface(三 接口类型)
所属栏目:[大数据] 日期:2020-12-16 热度:71
Go Data Structures: Interfaces Posted on Tuesday,December 1,2009. Go's interfaces—static,checked at compile time,dynamic when asked for—are,for me,the most exciting part of Go from a language design point of view. If I could export one f[详细]
-
Golang-interface(四 反射)
所属栏目:[大数据] 日期:2020-12-16 热度:154
github: https://github.com/ZhangzheBJUT/blog/blob/master/reflect.md 一 反射的规则 反射是程序运行时检查其所拥有的结构,尤其是类型的一种能力;这是元编程的一种形式。它同时也是造成混淆的重要来源。 每个语言的反射模型都不同(同时许多语言根本不支[详细]
-
Golang-函数式编程(闭包)
所属栏目:[大数据] 日期:2020-12-16 热度:107
github: https://github.com/ZhangzheBJUT/blog/blob/master/closure.md 一 函数式编程概论 在过去近十年时间里,面向对象编程大行其道,以至于在大学的教育里,老师也只会教给我们两种编程模型,面向过程和面向对象。孰不知,在面向对象思想产生之前,函数[详细]
-
读生产环境下go语言最佳实践有感
所属栏目:[大数据] 日期:2020-12-16 热度:98
最近看了一篇关于go产品开发最佳实践的文章,go-in-procution。作者总结了他们在用go开发过程中的很多实际经验,我们很多其实也用到了,鉴于此,这里就简单的写写读后感,后续我也争取能将这篇文章翻译出来。后面我用soundcloud来指代原作者。 开发环境 在so[详细]
-
Golang的errno
所属栏目:[大数据] 日期:2020-12-16 热度:108
在C中,出错信息一般通过errno来处理,一般有两种方式,一种是用标准的errno全局变量, 另一种是自己定义错误码,然后在出错时返回错误码。但这里就涉及到一个线程安全的问题。 那在Golang中是如何处理的呢? Golang 和Python一样支持多值返回。和C一样,Gol[详细]
-
Golang(9)File Management
所属栏目:[大数据] 日期:2020-12-16 热度:119
Golang(9)File Management 7.1 XML import ( “encoding/xml” “fmt” “io/ioutil” “os" ) xml.Unmarshal(data []byte,v inteface{}) error xml.Marshal(v interface{}) ([]byte,error) xml.MarshalIndent(v interface{},prefix,indent string) ([]byte,[详细]
-
GOLANG 在 UBUNTU 14.04 上使用 Oracle 数据库
所属栏目:[大数据] 日期:2020-12-16 热度:115
本文参考了以下地址的文章: https://github.com/Centny/Centny/blob/master/Articles/How%20build%20github.com%3amattn%3ago-oci8.md? 一、安装oracle的OCI套件 1、OCI下载链接页面下载(instantclient-basic,instantclient-sdk) http://www.oracle.com/[详细]
-
Go的sync/mutex实现
所属栏目:[大数据] 日期:2020-12-16 热度:189
概述 sync/mutex是Go语言底层基础对象之一,用于构建多个goroutine间的同步逻辑,因此被大量高层对象所使用。 其工作模型类似于Linux内核的futex对象,具体实现极为简洁,性能也有保证。 数据结构 type Mutex struct { state int32 sema uint32 } mutex对象[详细]
-
Timer的使用 引用(指针)的测试
所属栏目:[大数据] 日期:2020-12-16 热度:193
!-- lang: cpp --package mainimport ("fmt""time")func panic_test(){defer func() {fmt.Println("no")//if e := recover(); e != nil {//fmt.Println("some wrong:",e)//}}()z := 0zero := 1/zfmt.Println(zero)}func main() {panic_test()go func() {for[详细]
-
Golang中使用log(三):log模块的设计
所属栏目:[大数据] 日期:2020-12-16 热度:95
Golang的log模块可谓是语言层面上非常基础的一层库,反应的是语言本身的特征而不是一个服务应该怎样怎样。为了方便自己写 应用,我按照自己的需求提出一些log的API并重新实现。和Golang的log模块形成互补。 自己的log模块设计 对于我自己的log模块,暂时不需[详细]
-
Go - Channel 原理
所属栏目:[大数据] 日期:2020-12-16 热度:118
注:该文原文为 Channel Axioms ,作者是 Dave Cheney,这是他的博客地址 大部分的新的 Go 程序员能快速理解 channel 是作为一个 queue 的值和认同当 channel 是满的或者是空的时候, 操作是阻塞的概念。 这篇文章探讨了 channel 四个不太常见的特性: 给一[详细]
-
Golang反射机制的一些规则
所属栏目:[大数据] 日期:2020-12-16 热度:164
原文请参考:http://blog.golang.org/laws-of-reflection 本文转载自:http://mikespook.com/2011/09/%E5%8F%8D%E5%B0%84%E7%9A%84%E8%A7%84%E5%88%99/ [翻译]反射的规则 2011/09/13 MIKESPOOK 9条评论 第一次知道反射的时候还是许多年前在学校里玩 C# 的时[详细]
-
golang: 类型转换和类型断言
所属栏目:[大数据] 日期:2020-12-16 热度:184
本文为转载,原文地址:http://blog.go-china.org/22-type-assert 类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手[详细]
-
golang cookie、json、base64的小例子
所属栏目:[大数据] 日期:2020-12-16 热度:159
今天项目中要将map存入cookie,于是大象哥研究了下json和base64,写了个小例子 一、将map存入cookie //要存入cookie的mapyour := map[string]string{}your["isuser"] = isuseryour["username"] = usernameyour["password"] = d.Strtomd5(password)//将map转[详细]
-
golang select 选择器的两种方案
所属栏目:[大数据] 日期:2020-12-16 热度:86
golang select 选择器 常规模式: package mainimport ("fmt""strconv")func main() {var chs1 = make(chan int)var chs2 = make(chan float64)var chs3 = make(chan string)var ch4close = make(chan int)defer close(ch4close)go func(c chan int,ch4close[详细]
-
golang指针的使用,类似C语言
所属栏目:[大数据] 日期:2020-12-16 热度:149
srcmodelmodel.go package modelimport "strconv"type User struct {username stringpassword stringage int32}func (this *User) String() string {return "username: " + this.username + " password: " + this.password + " age:" + strconv.Itoa(int(t[详细]
-
Golang 建立RESTful webservice 接收客户端POST请求发送wav语音
所属栏目:[大数据] 日期:2020-12-16 热度:120
首先看下服务器端,服务器端使用martini框架,仅建立一个简单的接收客户端post请求并保存客户端传过来的语音的后台服务: 原文地址:http://www.jb51.cc/article/p-tonyjcqq-hg.html package main //http://liuxp0827.blog.51cto.com/5013343/1412977 import[详细]
-
Golang中多用途的defer
所属栏目:[大数据] 日期:2020-12-16 热度:60
defer顾名思义就是延迟执行,那么defer在Golang中该如何使用以及何时使用呢? A "defer" statement invokes a function whose executionis deferred to the moment the surrounding function returns, Golang的官方时这么定义的。 1.那么在什么情况下会调用d[详细]
-
Go语言中不同类型切片之间的相互转换
所属栏目:[大数据] 日期:2020-12-16 热度:52
将 []T 切片转换为 []byte 类似C语言中将其他类型的数组转换为 char 数组: func ByteSlice(slice interface{}) (data []byte) {sv := reflect.ValueOf(slice)if sv.Kind() != reflect.Slice {panic(fmt.Sprintf("ByteSlice called with non-slice value of[详细]
-
Golang(10)Web Service - Web Socket
所属栏目:[大数据] 日期:2020-12-16 热度:90
Golang(10)Web Service - Web Socket 8.1 Socket 2 types of socket,TCP Socket,UDP Socket. IP,port,TCP/UDP. 8.2 WebSocket Implement the Push Notification to Browsers https://github.com/astaxie/build-web-application-with-golang/blob/master/eboo[详细]
-
当GOLang遇到大量ESTABLISHED时
所属栏目:[大数据] 日期:2020-12-16 热度:144
当go程序(两个GO程序互为服务端、客户端)运行一段时间后,使用netstat -a查看,就出现大量ESTABLISHED的连接,且久久保持不断开。 一般来说就是在进行HTTP(TCP)调用时没有断开或者说关闭连接造成的。 经过排查,确实是有作为客户端的go程序没有进行关闭HTTP[详细]
-
Golang(11)Web Service - RESTful
所属栏目:[大数据] 日期:2020-12-16 热度:93
Golang(11)Web Service - RESTful 1. Concept Requests can be matched based on URL host,path,path prefix,schemes,header and query values,HTTP methods or using custom matchers. URL hosts and paths can have variables with an optional regular ex[详细]
-
Go笔记一(Embedded Types)
所属栏目:[大数据] 日期:2020-12-16 热度:164
An Introduction To Programming In Go 读书笔记 -- 9 Structs and Interfaces - Embedded Types packagemainimport"fmt"typePersonstruct{Namestring}typeAndroidstruct{Person//直接嵌入亦可使用自定义名称如OwnerPersonModelstring}func(p*Person)talk(){[详细]
-
Go笔记二(Interfaces)
所属栏目:[大数据] 日期:2020-12-16 热度:140
An Introduction To Programming In Go 读书笔记 -- 9 Structs and Interfaces - Interfaces packagemainimport("fmt""math")funcdistance(x1,y1,x2,y2float64)float64{a:=x2-x1b:=y2-y1returnmath.Sqrt(a*a+b*b)}typeCirclestruct{x,y,rfloat64}func(c*Circ[详细]
