碰到一个问题:
type Client struct {
addr string
conn net.Conn
}
(*c).addr
和 c.addr
有什么区别么,
这里我说明的是:
- 获取值的时候: (*c).add 和 c.addr 应该是没有区别的
- 修改值得时候: (*c).conn 和 c.conn 有区别
非指针设置值,只在当前方法有效,在方法外无效,如果需要设置值 需要在前面加 *
, 获取指针进行赋值。
例如:
type Integer int
func (a Integer) Less(b Integer) bool {
return a < b
}
func (a *Integer) Add(b Integer) {
*a += b
}
func main() {
var a Integer = 1
if a.Less(2) {
fmt.Println(a, "less 2")
}
a.Add(2)
fmt.Println("a =", a)
}