-
Golang 实现简单的文件上传
所属栏目:[大数据] 日期:2020-12-16 热度:134
示例代码: package mainimport ("fmt""io""net/http""os")const (upload_path string = "./upload/")func load_success(w http.ResponseWriter,r *http.Request) {io.WriteString(w,"上传成功!")}//上传func uploadHandle(w http.ResponseWriter,r *http.Re[详细]
-
Golang的...
所属栏目:[大数据] 日期:2020-12-16 热度:182
原文:http://www.jb51.cc/article/p-utakmtfd-bed.html 函数定义 首先来看如何定义一个不定参数的函数: func YourFun(v... interface {}){} 该函数定义,定义了一个接受任何数目任何类型参数的函数。这里特殊的语法是三个点“…”,在一个变量后面加上三个[详细]
-
Golang RPC
所属栏目:[大数据] 日期:2020-12-16 热度:194
Server.go package main import ( "fmt" "net/rpc" "net" "log" "sync" ) type Arg struct { Param1 string } type Request struct { Arg1 int Arg2 string Arg3 *Arg} type Response struct { Arg1 int Arg2 string Arg3 *Arg} type Arith int var lock syn[详细]
-
golang noblocking send
所属栏目:[大数据] 日期:2020-12-16 热度:187
// Basic sends and receives on channels are blocking.// However,we can use `s elect ` with a `d efault ` clause to// implement _non-blocking_ sends,receives, and even// non-blocking multi-way `s elect `s .package mainimport "fmt" func main[详细]
-
golang 对自定义类型排序
所属栏目:[大数据] 日期:2020-12-16 热度:124
golang 对自定义类型排序 在实际项目中,我们常常需要根据一个结构体类型的某个字段进行排序。之前遇到这个问题不知道如何解决,后来在网上搜索了相关问题,找到了一些好的解决方案,此处参考下,做个总结吧。 由于 golang 的 sort 包本身就提供了相应的功能[详细]
-
golang自定义模板示例
所属栏目:[大数据] 日期:2020-12-16 热度:66
package mainimport ( "text/template" "time" "os")type User struct { Username,Password string RegTime time.Time}func ShowTime(t time.Time,format string) string { return t.Format(format)}func main() { u := User{"dotcoo","dotcoopwd",time.Now([详细]
-
golang sql连接池的实现解析
所属栏目:[大数据] 日期:2020-12-16 热度:79
golang的”database/sql”是操作数据库时常用的包,这个包定义了一些sql操作的接口,具体的实现还需要不同数据库的实现,mysql比较优秀的一个驱动是: github.com/go-sql-driver/mysql ,在接口、驱动的设计上”database/sql”的实现非常优秀,对于类似设计[详细]
-
混淆视听:用Golang来保护Java程序
所属栏目:[大数据] 日期:2020-12-16 热度:129
以下的内容实验环境中通过,代码并未开源,只聊聊思路 #反编译带来的困扰 对于一个开发给自己组织内部用的程序,我们是不怎么需要考虑程序被反编译的事情的,但是对于商业软件来说,这又显得有必要,毕竟国内软件行业的竞争还是非常的激烈,大家可以把竞争对[详细]
-
golang中的模板template
所属栏目:[大数据] 日期:2020-12-16 热度:140
下面示例以模板函数为例: package mainimport "text/template"import "os"import "fmt"import "strings"type Friend struct { Fname string}type Person struct { UserName string Emails []string Friends []*Friend}// template functionfunc EmailDealWi[详细]
-
TiDB 源码初探
所属栏目:[大数据] 日期:2020-12-16 热度:178
作者: @申砾 本文档面向 TiDB 社区开发者,主要介绍 TiDB 的系统架构、代码结构以及执行流程。 目的是使得开发者阅读文档后,可以对 TiDB 项目有一个整体的了解,更好的参与进来。首先会介绍一下大体的结构以及 Golang 包的结构,然后会介绍内部的执行流程,[详细]
-
Golang部份特性的C++对比实现
所属栏目:[大数据] 日期:2020-12-16 热度:90
今天看到一篇文章C++ 逐渐 Python 化, 我个人是认为这个说法是不成立的,但这里面的一些特性对比引起了我的兴趣。 我想尝试下,Go语言所带的一些东西,在C++11中是如何做的,应当很有意思。所以刷刷刷,就有了下面的东西。 目录: 字符串字面值 变量初始化 l[详细]
-
golang make()内置函数
所属栏目:[大数据] 日期:2020-12-16 热度:107
内建函数 make 用来为 slice,map 或 chan 类型分配内存和初始化一个对象(注意:只能用在这三种类型上),跟 new 类似,第一个参数也是一个类型而不是一个值,跟 new 不同的是,make 返回类型的结构实列而不是指针,而返回值也依赖于具体传入的类型 make()函[详细]
-
golang定时器
所属栏目:[大数据] 日期:2020-12-16 热度:52
代码如下: func main() { fmt .Println (time .Now () .Format ( "2006-01-02 15:04:05" )) ticker := time .NewTicker (time .Second * 5 )//每五秒执行一次,也可以按照分钟,毫秒自定义实现。 go func() { for _ = range ticker .C { fmt .Println ( "ti[详细]
-
Golang中结构体转byte数组
所属栏目:[大数据] 日期:2020-12-16 热度:181
func bb(){ buf := new (bytes.Buffer) var data = [] interface {}{ uint16 (61374 ), int8 (-54 ), uint8 (254 ),} for _,v := range data { err := binary.Write(buf,binary.LittleEndian,v) if err != nil { fmt.Println( "binary.Write failed:" ,err)[详细]
-
golang的"..."备忘
所属栏目:[大数据] 日期:2020-12-16 热度:125
07Rntw蓝斩拖咕庞疚 http://lvyou.baidu.com/plan/4df6da3b98c4a2b5d3b85a17?i4vD=Zb2017-01-11/le 2aETsA庇蔷乱汛几偈 http://lvyou.baidu.com/plan/4dfada3b98c4a2b5d3b85a03?tadO=4r2017-01-11/Oh wrgZ8F示来诖笨枷掳 http://lvyou.baidu.com/plan/4dfb17e[详细]
-
Golang 指针的坑
所属栏目:[大数据] 日期:2020-12-16 热度:83
碰到一个问题,协议解码为实体后,想对原数据进行复用,结果原数据的值都改掉了,并不是接收到的值: func DecodeData(buffer []byte,datagram *entity.Datagram) error{var temp []bytetemp = buffer[0:]datagram.SetDatagram(temp) datagram.Repacket() ...[详细]
-
raspberry pi 2用golang 控制GPIO
所属栏目:[大数据] 日期:2020-12-16 热度:150
/* # Date: 2016-11-10 # Author: simonzhang # web: www.simonzhang.net # Email: simon-zzm@163.com */ package main import ( "os" "github.com/stianeikeland/go-rpio" "time" ) var ( aio = rpio.Pin(14) fio = rpio.Pin(4) alertCount int = 0 ) // 风[详细]
-
[Golang]Socket编程01----实现基本功能的Client和Server
所属栏目:[大数据] 日期:2020-12-16 热度:63
支持多连接。 Server运行之后,进入Accept阻塞状态。Accept得到一个Conn之后,开启一个协程,分别有两个协程阻塞在Read和Write。当Read一个数据之后,将Read得到的数据写入readChannel中,之后再对其进行处理。在writeChannel得到一个数据之后,向Conn写入数[详细]
-
Gogland IDE Run/Debug Configurations 配置说明
所属栏目:[大数据] 日期:2020-12-16 热度:194
1.简介 Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境。Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系。目前正式版尚未发布。官方目前提供试用版下载。 本文对Gogland IDE的使用和配置做一些简介,并介绍如何自行设置Run/Debug Co[详细]
-
go语言中sync包和channel机制
所属栏目:[大数据] 日期:2020-12-16 热度:162
golang中实现并发非常简单,只需在需要并发的函数前面添加关键字"Go",但是如何处理go并发机制中不同goroutine之间的同步与通信,golang 中提供了sync包和channel机制来解决这一问题. sync 包提供了互斥锁这类的基本的同步原语.除 Once 和 WaitGroup 之外[详细]
-
go-workerpool 支持每分钟百万并发的抽象原型
所属栏目:[大数据] 日期:2020-12-16 热度:136
使用 Golang 实现了一个简单的消费者模式, 主要解决每分钟百万请求的问题。 基本原理 :建立固定的工作线程去缓冲池中取数据处理。以此来控制固定时间内处理的请求数 源码地址 https://github.com/qianguozheng/go-workerpool.git 用途 控制goroutine的数目[详细]
-
golang异常处理
所属栏目:[大数据] 日期:2020-12-16 热度:99
package mainimport ("fmt")type TryTarget func()type CatchTarget func()func TryAndCatch(target TryTarget,catch CatchTarget) {defer func() {if err := recover(); err != nil {catch()}}()target()}func main() {TryAndCatch(func() {panic("抛出异常[详细]
-
年度语言 golang 使用感受
所属栏目:[大数据] 日期:2020-12-16 热度:124
首先,无意进行语言之争,毕竟,PHP是世界上最好的语言,没有之一。这个话题可以停下来了。 2016年已经过去,16年的年度语言给了 go语言 ,而正好这一年我都是用go用得比较多,而且版本从1.2一直用到了1.8,有一些感受,来说说我对这个年度编程语言的一些粗[详细]
-
golang的原子操作sync.once
所属栏目:[大数据] 日期:2020-12-16 热度:116
复习复习golang的库函数 type Once struct {m Mutexdone uint32 //相当于一个flag值}func (o *Once) Do(f func()) { //atomic库是原子操作,由汇编代码实现if atomic.LoadUint32(o.done) == 1 {return}// Slow-path. //读取o.done值前设置一个锁mutexo.m.Loc[详细]
-
Golang编码规范
所属栏目:[大数据] 日期:2020-12-16 热度:99
Golang编码规范 注:此文是作者所在团队约定的编码规范,参考官方指南Effective Golang和Golang Code Review Comments进行整理,力图与官方及社区编码风格保持一致。 gofmt 大部分的格式问题可以通过gofmt解决,gofmt自动格式化代码,保证所有的go代码一致的[详细]
