1.方法和函数的区别?
# 1.对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然。
# 2.对于方法(如struct的方法),接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以。
说明:函数定义传什么参数类型就必须传什么参数类型。方法定义传什么参数类型,可以传入值类型或者指针类型。
2.值类型和指针类型的区别
指针类型运算符就是简单的 & 和 * 一个取地址、一个解析地址。
var i int // i 的类型是int型
var p *int // p 的类型是[int型的指针]
i = 1 // i 的值为 1;
p = &i // p 的值为 [i的地址]
fmt.Printf("i=%d;p=%d;*p=%d\n",i,p,*p)
*p = 2 // *p 的值为 [[i的地址]的指针](其实就是i嘛),这行代码也就等价于 i = 2
fmt.Printf("i=%d;p=%d;*p=%d\n",i,p,*p)
i = 3 // 验证我的想法
fmt.Printf("i=%d;p=%d;*p=%d\n",i,p,*p)
3. 形参和实参的区别
形参就是没有赋值的变量,实参就是有赋值的变量
4.gorm数据库
db,err := gorm.Open("mysql","root:@tcp(127.0.0.1:3306)/mygoweb?charset=utf8&parseTime=True&loc=Local")