-
Golang 全面展示反射技术使用 (一)
所属栏目:[大数据] 日期:2020-12-16 热度:92
package main import ( "fmt" "reflect" ) //父对象 type Human struct { name string //私有字段 //Age是公有字段定义方式(反射可修改它的值),age是私有字段定义方式(反射不可修改它的值) Age int //公有字段 phone string //私有字段 } //子对象,因为[详细]
-
Golang 在数据库Replication场景下的应用及GC算法
所属栏目:[大数据] 日期:2020-12-16 热度:84
分享KeyNotes总结[详细]
-
Golang scheduler调度器简介
所属栏目:[大数据] 日期:2020-12-16 热度:125
Golang Scheduler[详细]
-
golang实现AES ECB模式的加密和解密
所属栏目:[大数据] 日期:2020-12-16 热度:113
最近有一个需求需要在golang中实现AES ECB模式的加密和解密,看了一下官方文档和相关资料发现golang 官方包并没有完善的实现,于是自己尝试写了一个,本文中的AES算法是基于ECB模式,关于AES算法的几种模式原理大家可以去百度搜索一下,集中模式如下。 1. 电码[详细]
-
Golang goroutine协程(一) 编写第一个并发处理的程序
所属栏目:[大数据] 日期:2020-12-16 热度:165
package main import ( "fmt" "runtime" "sync" ) var wg sync.WaitGroup //它是一个计数的信号量 func SayHi(s string) { defer wg.Done() //每一个goroutine的函数执行完之后,就调用Done方法对计数器减1 for i := 0; i 50000; i++ { //runtime.Gosched()表[详细]
-
Golang goroutine协程(二) 并发资源竞争
所属栏目:[大数据] 日期:2020-12-16 热度:101
package main import ( "fmt" "runtime" "sync" ) var ( count int32 wg sync.WaitGroup ) func main() { wg.Add(2) go incCount() go incCount() wg.Wait() fmt.Println(count) } func incCount() { defer wg.Done() for i := 0; i 200000; i++ { value := c[详细]
-
golang中实现RSA(PKCS#1)加密解密
所属栏目:[大数据] 日期:2020-12-16 热度:117
RSA非对称加密算法,基于PKCS#1规范,我们在使用RSA的时候需要提供 公钥和私钥 , 我们可以通过openss来为我们生成对应的pem格式的公钥和私钥匙。 关于pkcs相关标准如下,摘自百度: PKCS#1:定义RSA公开密钥算法加密和签名机制,主要用于组织PKCS#7中所描述的[详细]
-
Go基础学习
所属栏目:[大数据] 日期:2020-12-16 热度:81
从今天开始,学习Go语言,为以后的BAT进阶之路打基[详细]
-
udp编程的那些事与golang udp的实践
所属栏目:[大数据] 日期:2020-12-16 热度:73
udp编程的那些事与golang udp的实践 tcp/ip大协议中,tcp编程大家应该比较熟,应用的场景也很多,但是udp在现实中,应用也不少,而在大部分博文中,都很少对udp的编程进行研究,最近研究了一下udp编程,正好做个记录。 sheepbao 2017.06.15 tcp Vs udp tcp和[详细]
-
Golang应用程序自动构建版本
所属栏目:[大数据] 日期:2020-12-16 热度:78
每次编译Go应用程序时,是否可以自动递增次要版本号? 我想在我的程序中设置一个版本号,带有一个自动增量部分: $ myapp -versionMyApp version 0.5.132 为0.5,我设置的版本号,和132每当二进制编译时自动递增的值。 这是可能在Go吗? Go链接器( go tool l[详细]
-
如何在Golang中找到一个对象的类型?
所属栏目:[大数据] 日期:2020-12-16 热度:80
如何在Golang中查找对象的类型?在Python中,我只是使用typeof来获取对象的类型。同样在Go中,有没有办法实现同样的? 这里是我从中迭代的容器 for e := dlist.Front(); e != nil; e = e.Next() { lines := e.Value fmt.Printf(reflect.TypeOf(lines)) } 我[详细]
-
golang DES跟base64相结合加解密
所属栏目:[大数据] 日期:2020-12-16 热度:137
// DEStest project DEStest.go //注意base64对中文不同编码加解密结果不一样,即UTF-8跟GBKpackage mainimport ("bytes""crypto/cipher""crypto/des""encoding/base64""fmt""github.com/axgle/mahonia")//DES加密func DesEncrypt(origData,key []byte) (str[详细]
-
golang实现的自动git pull
所属栏目:[大数据] 日期:2020-12-16 热度:124
在测试的web项目里面添加了git版本库管理,然后通过golang命令自动执行gitfetch和gitmerge命令,免去了烦人的操作和节省一些宝贵时间。 涉及两个文件: 1.conf配置文件,第一行是切换到该目录下,接着是git的命令顺序,一行一个命令,空行隔开多个版本库(请[详细]
-
Golang 中的正则表达式
所属栏目:[大数据] 日期:2020-12-16 热度:136
用法:------------------------------单一: . 匹配任意一个字符,如果设置 s = true ,则可以匹配换行符 [字符类] 匹配“字符类”中的一个字符,“字符类”见后面的说明 [^字符类] 匹配“字符类”外的一个字符,“字符类”见后面的说明 小写Perl标记 匹配[详细]
-
Golang 写一个端口扫描器
所属栏目:[大数据] 日期:2020-12-16 热度:76
前话 最近痴迷于Golang这个新兴语言,因为它是强类型编译型语言,可以直接编译成三大平台的二进制执行文件,可以直接运行无需其他依赖环境。而且Golang独特的goroutine使得多线程任务执行如new一个对象般简单。 带着为学习理解Golang的好奇心情,我试着写了[详细]
-
golang time时间类型转换
所属栏目:[大数据] 日期:2020-12-16 热度:87
获取系统当前时间 now := time.Now() fmt.Println(now) 2017-06-20 17:45:30.6609668 +0800 CST time格式化为字符串 now := time.Now() formatNow := now.Format("2006-01-02 15:04:05") fmt.Println(formatNow) 2017-06-20 18:16:15 字符串转换为time local[详细]
-
go基本语法
所属栏目:[大数据] 日期:2020-12-16 热度:129
go基本语法 go基本语法 变量 基本类型 定义变量 数组 slice map struct 自定义类型 常量 语句 函数面向过程的函数 定义函数 函数返回值 变长参数 传值与传指针 函数作为类型与变量 方法面向对象的方法 方法的继承 重写继承的方法 interface 接口作为参数 接[详细]
-
并发并行与Go并发编程
所属栏目:[大数据] 日期:2020-12-16 热度:152
并发与并行 并发(concurrency) 并发的关注点在于任务切分。举例来说,你是一个创业公司的CEO,开始只有你一个人,你一人分饰多角,一会做产品规划,一会写代码,一会见客户,虽然你不能见客户的同时写代码,但由于你切分了任务,分配了时间片,表现出来好[详细]
-
golang 中的md5 、hmac、sha1算法的简单实现
所属栏目:[大数据] 日期:2020-12-16 热度:198
package mainimport ("crypto/hmac""crypto/md5""crypto/sha1""encoding/hex""fmt")func Md5(data string) string {md5 := md5.New()md5.Write([]byte(data))md5Data := md5.Sum([]byte(""))return hex.EncodeToString(md5Data)}func Hmac(key,data string)[详细]
-
golang 结合cgo 操作共享内存,包括虚拟内存mmap版和内存shm版
所属栏目:[大数据] 日期:2020-12-16 热度:104
如下是源代码实现直接编译即可使用: //author sam by 20170621 // 使用示例: // package utils // import ( // "fmt" // u "lpaiche.com/utils" // "testing" // ) // type MyData struct { // Col1 int // Col2 int // Col3 int // Col4 int // } // //--[详细]
-
Golang 奇葩的时间包基本用法(一)
所属栏目:[大数据] 日期:2020-12-16 热度:138
Golang 时间转换有个奇葩时刻,请一定要记住它,记忆方法先记2006-01-02,然后记下午 03:04:05 package main import ( "fmt" "time" ) func main() { in1 := "2017/06/23" in2 := "2017-07-24" in3 := "2017/08/25 17:04:55" in4 := "2017-08-26 15:04:55" i[详细]
-
golang简单实现一个基于TLS/SSL的 TCP服务器和客户端
所属栏目:[大数据] 日期:2020-12-16 热度:59
本篇文章介绍一下使用TLS/SSL创建安全的TCP通信,首先我们要准备一个数字证书和一个密钥关于如何产生密钥,请看下面文章: Author: 岳东卫 Email: usher.yue@gmail.com 通过Openssl创建数字证书和密钥 TLS服务器端代码 TLS客户端代码 通过Openssl创建数字证书[详细]
-
golang 验证表单的输入
所属栏目:[大数据] 日期:2020-12-16 热度:105
login.gtpl 文件的内容: html head title/title /head body form action="/login" method="post" 用户名:input type="text" name="username"br 密码:input type="password" name="password"br input type="submit" value="登陆"br hr Age:input type="text"[详细]
-
Go语言学习之time包(获取当前时间戳等)(the way to go)
所属栏目:[大数据] 日期:2020-12-16 热度:68
生命不止,继续 go go go !!! 每种语言都需要对时间进行处理,golang当然也不例外,go语言为我们提供了time package用于各种时间的转换,处理。 Package time provides functionality for measuring and displaying time. 获取当前时间 func Now func Now()[详细]
-
golang时间格式化
所属栏目:[大数据] 日期:2020-12-16 热度:152
golang时间处理 相关包 "time" 当前时间戳 fmt.Println(time.Now().Unix())# 1389058332 当前格式化时间 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 这是个奇葩,必须是这个时间点,据说是go诞生之日,记忆方法:6-1-2-3-4-5# 2014-01-07 09:42:2[详细]
