1 Star 0 Fork 1

阿债 / gozzo-utils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

gozzo 尜舟

常用 common

package main
import (
    "fmt"
    "github.com/azhai/gozzo-utils/common"
)

// 浮点数
func main() {
    x := 123.45678
    a := common.NewDecimal(common.RoundN(x, 2), 2)
    fmt.Println(a.String()) // 123.45
    b := common.ParseDecimal(a.String(), 2)
    fmt.Println(b.String()) // 123.45
}

文件操作 filesystem

package main
import (
    "fmt"
    "github.com/azhai/gozzo-utils/filesystem"
)

// 文件计行
func main() {
    fname := "README.md"
	count := LineCount(fname)

	// 逐行返回,适用于大文件
	var lines []string
	r := NewLineReader(fname)
	for r.Reading() {
		lines = append(lines, r.Text())
	}
	if len(lines) == count {
		fmt.Println("%s have %d lines", fname, count)
	} else {
		fmt.Println("Error !")
	}
}

文件日志 logging

package main
import (
    "math"
    "time"
    "github.com/azhai/gozzo-utils/logging"
)

// 计算年龄
func CalcAge(birthday string) int {
    birth, err := time.Parse("2006-01-02", birthday)
    if err != nil {
        return -1
    }
    hours := time.Since(birth).Hours()
    return int(math.Round(hours / 365 / 24))
}

func main() {
    birthday := "1996-02-29"
    age := CalcAge(birthday)
    logger := logging.NewLogger("debug", "") // 输出到屏幕
    logger.Info("I was born on ", birthday, ", I am ",  age, " years old.")
}

地理位置和电子围栏 geohash

# 电子围栏的测试请查看文件 geohash/fence_test.go
cd geohash/
go test -v -mod=vendor

RabbitMQ队列 queue

package main
import (
    "fmt"
    "github.com/streadway/amqp"
    "github.com/azhai/gozzo-utils/common"
    "github.com/azhai/gozzo-utils/queue"
)

// 创建JT/T808心跳消息,流水号为num
func CreateMessage(num int) *queue.Message {
    hb := common.Hex2Bin("7E0002000001453039919500")
    return &Message{
        Body: append(hb, 0x01 * num, 0x00, 0x7e), // 未计算校验码
        Headers: amqp.Table{
            "MsgNo": int16(num),
        },
    }
}

// 订阅消息的回调,直接输出消息体
func DumpBody(msg *queue.Message) error {
    fmt.Println(common.Bin2Hex(msg.Body))
    return nil
}

func main() {
    ch := queue.NewChannel("amqp://user:123@127.0.0.1:5672")
    defer ch.Close()
    routings := map[string]string{"testing":"queueForTesting"}
    ch.InitBinds("amq.topic", routings, true)
    mq := queue.NewMessageQueue()
    mq.AddHandler("queueForTesting", DumpBody) // 订阅队列testing
    mq.RunAll(ch, -1)
    for i := 1; i <= 10; i ++ {
        mq.AddMessage("amq.topic", "testing", CreateMessage(i)) // 发布消息
    }
}

空文件

简介

gozzo 尜舟 Utils in Golang 展开 收起
Go
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/azhai/gozzo-utils.git
git@gitee.com:azhai/gozzo-utils.git
azhai
gozzo-utils
gozzo-utils
master

搜索帮助