V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
dafsic
V2EX  ›  Go 编程语言

golang 菜鸡,想写一些常用的小组件

  •  
  •   dafsic · 2020-04-26 09:56:47 +08:00 · 3181 次点击
    这是一个创建于 1670 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了挺久的 golang 了,但仍然很菜,大一点的开源项目看不懂,所以就想写一些常用小组件,力求简洁。昨天刚写了一个集合的包,因为在网上看了几个别人写的,都不满足我的需求。

    想练手的可以一起。

    https://github.com/podpingofdeath/gogadgets

    8 条回复    2020-04-27 08:41:28 +08:00
    airplayxcom
        1
    airplayxcom  
       2020-04-26 11:11:41 +08:00
    支持,顺便提供一下你可能用到的工具 https://github.com/airplayx/gormat,如有帮助请 star 谢谢了
    airplayxcom
        2
    airplayxcom  
       2020-04-26 11:13:12 +08:00
    dafsic
        3
    dafsic  
    OP
       2020-04-26 14:45:02 +08:00   ❤️ 1
    @airplayxcom 好的,已加 star
    circleee
        4
    circleee  
       2020-04-26 16:39:12 +08:00
    @airplayxcom 好的 去看看
    wzw
        5
    wzw  
       2020-04-26 17:44:56 +08:00 via iPhone
    我用 goframe
    dafsic
        6
    dafsic  
    OP
       2020-04-26 18:02:44 +08:00
    @wzw 别说,这个就是我看过的之一,这里面的 set 定义
    type Set struct {
    mu rwmutex.RWMutex
    data map[interface{}]struct{}
    }
    不符合我的需求
    wzw
        7
    wzw  
       2020-04-26 20:12:56 +08:00 via iPhone
    @dafsic 我初学 golang,以前 python,这个写法不好?
    dafsic
        8
    dafsic  
    OP
       2020-04-27 08:41:28 +08:00
    @wzw 假设我有一个结构体,定义为:
    type T struce {
    Id int
    Name string
    Ts int64
    }

    t1 := &T{1,"xxx",2}
    t2 := &T{1,"xxx",2}
    t3 := &T{1,"zzz",2}

    因为 interface{}实质上就是结构体,结构体判断相等就是各个字段都相等才想等。所以,我 t1,t2,t3 都能插入都这个集合里,显然不是我要的结果。甚至如果我认为 Id 和 Ts 字段相同就算相同,那么向集合插入这个三个变量,最终集合中应该只有一个元素。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1087 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:42 · PVG 06:42 · LAX 14:42 · JFK 17:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.