Go使用库 - 美其名曰避免重复造轮子

库s

1. go-json-rest 
https://github.com/ant0ine/go-json-rest

2. gocui 字符终端界面
https://github.com/jroimartin/gocui(windows下暂不建议使用20200722)
Note: 
    https://github.com/jroimartin/gocui/issues/217
    Windows需要g.ASCII = true, g是什么,看了示例就知道了;
    下面判断了当前系统是否windows 和 东亚地区(CJK[中日韩])
    if runtime.GOOS == "windows" && runewidth.IsEastAsian() {
		g.ASCII = true
	}

3. go-runewidth
   https://github.com/mattn/go-runewidth
   字符的真正长度, 看下列效果图

4. https://goframe.org/
   避免重复造轮子, 对很多常用的功能进行封装, 可以找找看看是否有你想要的功能
   

效果图 

序列号 与 库s序列号对应

1. go-json-rest 

   https://blog.csdn.net/halo_hsuh/article/details/107500670

2. gocui

3. go-runewidth (语言自带长度 和 runewidth比较, 2中引用库即使用了此库,避免出现字符错乱, 显示的大小影响了字符界面的呈现效果, 你试着使用下2 不加g.ASCII = true试试你就知道了)

func main() {
	fmt.Println(runewidth.StringWidth("字符长度"), len("字符长度"))
	fmt.Println(runewidth.StringWidth("ABCDE"), len("ABCDE"))
	fmt.Println(runewidth.StringWidth("にほんご"), len("にほんご"))
	fmt.Println(runewidth.StringWidth("한국어어"), len("한국어어"))

	fmt.Println("--------------------")

	fmt.Println(runewidth.RuneWidth('租'))
	fmt.Println(runewidth.RuneWidth('A'))
	fmt.Println(runewidth.RuneWidth('に'))
	fmt.Println(runewidth.RuneWidth('한'))
}

/*
8 12
5 5
8 12
8 12
--------------------
2
1
2
2
*/

4. udp , tcp, 数据校验,数据转化,等...

猜你喜欢

转载自blog.csdn.net/halo_hsuh/article/details/107493574
今日推荐