1 Printf 和 Println 区别
https://blog.csdn.net/zgh0711/article/details/78843361
a := 10
fmt.Println(a) //right
fmt.Println("abc") //right
fmt.Printf("%d",a) //right
fmt.Printf(a) //error
个人理解 Printf适合打印 type ,Println日常打印
1.1 常用格式化输出
原文:https://blog.csdn.net/weixin_44353114/article/details/126429961
输出格式 输出内容
%v 值的默认格式表示
%+v 类似 %v,但输出结构体时会添加字段名
%#v 值的 Go 语法表示,会显示“ ”
%T 会显示值的类型
示例
package main
import (
"fmt"
)
func main() {
a := "hello world"
fmt.Printf("a: %v\n", a)
fmt.Printf("a: %+v\n", a)
fmt.Printf("a: %#v\n", a)
fmt.Printf("a: %T\n", a)
}
//输出结果
a: hello world
a: hello world
a: "hello world"
a: string
其他类型不一样
例如:格式化输出-整数类型
输出格式 输出内容
%b 表示为二进制
%c 该值对应的 unicode 码值
%d 表示为十进制
%8d 表示该整型长度是 8,不足 8 则在数值前补空格;如果超出 8,则以实际为准,也可以是其它整数
%08d 表示该整型长度是 8,不足 8 则在数值前补 0;如果超出 8,则以实际为准,也可以是其它整数
%o 表示为八进制
%q 该值对应的单引号括起来的Go语言语法字符字面值,必要时会采用安全的转义表示
%x 表示为十六进制,使用 a~f
%X 表示为十六进制,使用 A~F
%U 表示为 unicode 格式:U+1234,等价于 U+%04X
————————————————
版权声明:本文为CSDN博主「小荣同学+」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44353114/article/details/126429961
2 指针有啥用
https://www.imooc.com/wenda/detail/526743
第一(最重要):当作为方法的receiver时,如果你的方法会改变receiver时,你必须传递指针…
第二,作为入参时,golang是值拷贝传递, 如果是比较大的struct作为参数,那么显然拷贝一个指针比拷贝整个结构代价要小一些