golang
IGuoSJ
这个作者很懒,什么都没留下…
展开
-
golang 将结构体存入redis
golang 将结构体存入redis原创 2022-08-08 14:48:25 · 1395 阅读 · 1 评论 -
【Golang】gin csv 生成及下载
代码片段 buf := new(bytes.Buffer) w := csv.NewWriter(buf) err = w.WriteAll(csvData) if err != nil { return err } w.Flush() c.Writer.Header().Add("Content-type", "application/octet-stream") _, err = io.Copy(c.Writer, buf)原创 2022-03-31 16:17:03 · 847 阅读 · 0 评论 -
golang:实现类似tailf命令的功能
支持自动结束tailf命令,本例适用于实时呈现临时文本文件内的日志信息package mainimport ( "bufio" "fmt" "io" "log" "os" "time")var stop = make(chan struct{})func main() { if len(os.Args) != 2 { log.Fatalln("Usage: main <filename>") } fileName := os.Args[1] file, e原创 2021-05-31 15:13:50 · 324 阅读 · 1 评论 -
golang:CGO实现获取指定网卡的MAC地址
package mainimport ( "fmt" "strings")/*#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <netinet/in.h>#include <net/原创 2021-03-16 16:24:07 · 519 阅读 · 0 评论 -
golang:从切片中删除一个元素
package mainimport "fmt"/* Author: Guo Date: 3/16/21 2:24 PM Description: Company: Updated: ??@??@?? ????*///方式一:使用copy()func removeSample1(in []interface{}, index int) ([]interface{}, bool) { if len(in) == 0 || index < 0 { return in, f原创 2021-03-16 16:16:38 · 826 阅读 · 0 评论 -
golang:时间窗口法实现限流器
package mainimport ( "container/list" "fmt" "sync" "time")/* Author: Guo Date: 3/15/21 4:58 PM Description: Company: huastart.com Updated: 姓名@时间@版本 变更说明*/// 限量器type Limitor struct { // 锁 Lock sync.Mutex // 存储元素的双向链表 Elements *list.Lis原创 2021-03-15 19:30:10 · 367 阅读 · 0 评论 -
golang:如何对私有函数进行单元测试
在待测试的私有函数所在的包内,新建一个xx_test.go文件,书写方式如下:import ( "github.com/stretchr/testify/assert" "testing")var XXFunc = yourPrivateFuncfunc TestXXFunc(t *testing.T) { ret, ... := XXFunc(...) assert.Equal(t, ret, ...)}就可以了...原创 2020-09-01 15:17:50 · 1965 阅读 · 0 评论 -
golang:发布订阅系统
发布订阅系统:package pubsubimport ( "sync" "time")/* Author: Guo Date: 8/15/20 2:53 PM Description: Company: huastart.com Updated: 姓名@时间@版本 变更说明*/type ( //订阅者 Subscriber chan interface{} //主题 TopicFunc func(v interface{}) bool)type Publish原创 2020-08-15 16:43:57 · 475 阅读 · 0 评论 -
golang:支持每周或者每天固定时间的事件触发器
package main/*Author: GuoFunction: 支持每周或者每天固定时间的事件触发器*/import ( "fmt" "time")//一天的秒数const oneDaySecond = 1 * 24 * 60 * 60//定时器服务func tickerService(stop chan int) { var ticker *time.Ticker var duration int64 var isWeekBak bool for { no原创 2020-07-18 22:34:26 · 2281 阅读 · 0 评论 -
golang:AES加密解密
golang AES加密解密代码示例:package mainimport ( "bytes" "crypto/aes" "crypto/cipher" "fmt")func padding(src []byte, blocksize int) []byte { padnum := blocksize - len(src)%blocksize pad := bytes.Re...转载 2019-12-19 15:28:38 · 554 阅读 · 0 评论 -
golang:比较版本号大小
package mainimport ( "fmt" "strings")var ( VersionBig = 1 VersionSmall = 2 VersionEqual = 0)func compareStrVer(verA, verB string) int { verStrArrA := spliteStrByNet(verA) verStrArrB := ...转载 2019-11-01 14:26:16 · 2822 阅读 · 0 评论 -
golang:将有序的数字切片转换为数字范围表示的字符串数组
golang:将有序的数字切片转换为数字范围表示的字符串数组package mainimport ( "fmt" "strconv")func numToRange(numList []int) []string { if len(numList) == 0 { return []string{} } var retList []string var start = n...原创 2019-11-01 14:17:24 · 964 阅读 · 0 评论 -
golang:给定一个数字切片,用时间复杂度为O(n)的算法找出所有和为10的数字组合
golang:给定一个数字切片,用时间复杂度为O(n)的算法找出所有和为10的数字组合input: [1, 3, 4, 7, 8, 6]output: 3 and 7; 4 and 6代码示例:-----package mainimport "fmt"func main() { inputSlice := []int{1, 3, 4, 7, 8, 6} numMap := ...原创 2019-07-27 20:19:12 · 387 阅读 · 2 评论