一、避免重复造轮子
fmt
我们可以查看到其里面的实现:
package fmtfunc Println(a ...interface{}) (n int, err error) {return Fprintln(os.Stdout, a...)}func Printf(format string, a ...interface{}) (n int, err error) {return Fprintf(os.Stdout, format, a...)}func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {p := newPrinter()p.doPrintf(format, a)n, err = w.Write(p.buf)p.free()return}func Fprintln(w io.Writer, a ...interface{}) (n int, err error) {p := newPrinter()p.doPrintln(a)n, err = w.Write(p.buf)p.free()return}
PrintlnPrintf
// 打印一行空行fmt.Println()// 打印 4 5 6fmt.Println(4, 5, 6)// 占位符 %d 打印数字,\n换行fmt.Printf("%d\n", 2)// 占位符 %s 打印字符串,\n换行fmt.Printf("%s\n", "cat")// 占位符 %v或者%#v 打印任何类型,\n换行fmt.Printf("%#v,%v\n", "cat", 33)// 更多示例fmt.Printf("%s,%d,%s,%v,%#v\n", "cat", 2, "3", map[int]string{1: "s"}, map[int]string{1: "s"})
输出:
4 5 62cat"cat",33cat,2,3,map[1:s],map[int]string{1:"s"}
PrintfFprintfFprintf
func Printf(format string, a ...interface{})formata ...interface{}
fmt.Printf("%s,%d,%s,%v,%#v\n", "cat", 2, "3", map[int]string{1: "s"}, map[int]string{1: "s"})
%%s%d%v%#v#\n
在某些时候,我们可以使用官方库或别人写的库,毕竟轮子重造需要时间。
IDEIntegrated Development EnvironmentGolandGolangIDEA
二、总结
Golangdocker
# 拉镜像docker pull hunterhug/gotourzh# 后台运行docker run -d -p 9999:9999 hunterhug/gotourzh
打开浏览器输入:http://127.0.0.1:9999 更全面地学习。
Golang