1. 字符处理
1) strings
1. 命令行参数
1.1 os.Args包
func main() { fmt.Println(os.Args) for k,v :=range os.Args{ fmt.Println(k,v) }}
1.2 flag包
func main() { var host string var port int var help bool // 第1个是传入值参数,第2个是命令参数,第3个是默认值,第4个是提示帮助信息 flag.IntVar(&port,"P",22,"ssh port") flag.StringVar(&host,"h","127.0.0.1","ssh -h 127.0.0.1") flag.BoolVar(&help,"-help",false,"help") flag.Usage = func() { fmt.Println("usage: flagargs [-h 127.0.0.1] [-P 22] [--help] [args01 args02]") flag.PrintDefaults() } // 解析命令行参数 flag.Parse() if help { flag.Usage() }else { fmt.Println(host,port) fmt.Println(flag.Args()) }}
package mainimport ( "flag" "fmt")func main() { // 第1个是命令参数,第2个是默认值,第3个是提示帮助信息 port:=flag.Int("P",22,"ssh port") host:=flag.String("h","127.0.0.1","ssh -h 127.0.0.1") help:=flag.Bool("-help",false,"help") flag.Usage = func() { fmt.Println("usage: flagargs [-h 127.0.0.1] [-P 22] [--help] [args01 args02]") flag.PrintDefaults() } // 解析命令行参数 flag.Parse() if *help { flag.Usage() }else { fmt.Println(*host,*port) fmt.Println(flag.Args()) }}



2. time模块
package mainimport ( "fmt" "time")func main() { // 获取当前时间 now := time.Now() fmt.Println(now) fmt.Println(now.Format("2006/01/02 15:04:05")) fmt.Println(now.Format("2006-01-02 15:04:05")) fmt.Println(now.Format("2006/01/02")) fmt.Println(now.Format("15:04:05")) fmt.Println(now.Unix()) fmt.Println(now.UnixNano()) t, err := time.Parse("2006-01-02 15:04:05", "2020-02-02 14:22:22") fmt.Println(t, err) fmt.Println(time.Now()) time.Sleep(time.Second * 5) fmt.Println(time.Now()) // 查看3小时后的时间 t = now.Add(time.Hour * 3) fmt.Println(t) // 时间转换 d, err := time.ParseDuration("3h2m4s") fmt.Println(d, err) fmt.Println(d.Hours(),"小时") fmt.Println(d.Minutes(),"分钟") fmt.Println(d.Seconds(),"秒")}
3. md5值
func main() { bytes:=md5.Sum([]byte("dadong")) x:=fmt.Sprintf("%X",bytes) fmt.Println(hex.EncodeToString(bytes[:])) fmt.Println(x) m:=md5.New() m.Write([]byte("da")) m.Write([]byte("dong")) fmt.Printf("%x\n",m.Sum(nil))}
4. log
func main() { log.SetPrefix("我的作用:给日志加前缀\t") log.Println("我是println日志") log.Fatal("我是fatal日志,打印完后退出状态为1")}
5. 设置加密密码
- 字符串转换为字节切片
[]byte(string) - 字节切片转换字符串
string([]byte)func main() { const passwd = "E10ADC3949BA59ABBE56E057F20F883E" fmt.Printf("请输入密码:") bytes,_:=gopass.GetPasswd() if fmt.Sprintf("%X",md5.Sum(bytes)) == passwd{ fmt.Println("密码输入正确") }else { fmt.Println("密码输入错误,程序退出") }}