碰到一个问题:
type Client struct { addr string conn net.Conn}
(*c).addr
和 c.addr
有什么区别么,
这里我说明的是:
- 获取值的时候: (*c).add 和 c.addr 应该是没有区别的
- 修改值得时候: (*c).conn 和 c.conn 有区别
非指针设置值,只在当前方法有效,在方法外无效,如果需要设置值 需要在前面加 *
, 获取指针进行赋值。
例如:
type Integer intfunc (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)}