Go每日一库 - cobra

Cobra功能 简单子命令cli 如 kubectl verion kubectl get 自动识别-h,–help 帮助 更过参考官方手册:https://github.com/spf13/cobra kubectl get pod --all-namespaces get 代表命令(command) pod 代表事务(args) --all-namespaces 代表标识(flag) command 代表动作, Args 代表事务, flags 代表动作的修饰符。 使用Cobra 使用cobra需要main.go或和cmd/cmd.go(非固定,根据官方手册说明操作的),来创建需要添加的命令。 cobra不需要构造函数,只需要创建命令即可 go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 rootCmd = &cobra.Command{ Use: "db ", Short: "test1", Long: `this is a test123`, Run: func(cmd *cobra.Command, args []string) { log.Println(cfgFile, port) }, } func Execute() { if err := rootCmd....

 ·  · 

Go每日一库 - cronexpr

包获取:go get -u github.com/gorhill/cronexpr 创建一个定时任务 go 1 expr, err = cron.Parse("* * * * *"); 获得任务的下次执行时间 go 1 nextTime = expr.Next(now) 完整代码 go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 package main import ( "fmt" "time" cron "github....

 ·  · 

Go byte与rune区别

先看代码 go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package main import ( "fmt" ) func main() { var a = "hello world" var b = "中" fmt.Println([]rune(a)) fmt.Println([]rune(b)) fmt.Println([]byte(b)) } go源码中的定义 go 1 2 3 4 5 6 7 8 // byte is an alias for uint8 and is equivalent to uint8 in all ways. It is // used, by convention, to distinguish byte values from 8-bit unsigned // integer values....

 ·  · 

Go每日一库 - bufio缓冲区的终端输入

bufio包实现了有缓冲的I/O。它包装一个io.Reader或io.Writer接口对象,os.stdin就是实现了这个接口 go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package main import ( "bufio" "fmt" "os" ) var buff *bufio.Reader func main() { buff = bufio.NewReader(os.Stdin) str, err := buff.ReadString('\n') if err == nil { fmt.Printf("input was :%s", str) } } ReadString(byte) 遇到byte后返回,包含已读到的和byte,如果在读到之前遇到错误,返回读取的信息及该错误 在写文件时。可以写入缓冲区来可以提升磁盘性能

 ·  · 

Go数组排序算法

冒泡排序 图 https://www.cnblogs.com/onepixel/articles/7674659.html go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package main import ( "fmt" ) func bubbleSort(slice []int) []int { for n := 0; n <= len(slice); n++ { for i := 1; i < len(slice)-n; i++ { if slice[i] < slice[i-1] { slice[i], slice[i-1] = slice[i-1], slice[i] } } } return slice } func main() { var arr = [....

 ·  ·