/**
golang struct 和 指针
*/
package main
import (
"fmt"
_ "strconv"
_ "time"
)
var p = fmt.Println
//这儿就叫结构体了 呵呵注意首字母大写的意思 和变量函数的意思一样的!
type Test struct {
//这里面的首字母大小写的意思也是一样的
A int
b int
}
//结构体的方法
func (t Test) T1() {
t.A = 12
p("------Test1() T1()----")
}
//注意这里面的这个 “*”
func (this *Test) T2() {
this.A = 13
p("------T2()----")
}
//Test2 嵌套了 Test 并不是所谓意思上的继承
type Test2 struct {
Test
}
func (t2 Test2) T1() {
p("--------Test2 T1()----------")
}
func main() {
p(Test{1, 2}) //
p(Test{b: 12, A: 13})
p(Test{b: 12})
p(&Test{b: 12})
p(new(Test)) //new 出来的是个指针
p()
t := Test{2, 3}
t.T1()
p(t) //{2 3}
t.T2()
p(t) //{13 3}
//看结果大概懂啥意思了吧!
//猜的 带*号传清楚的是个指针,修改会改变原来的值,不带*号的,传进去的就是个对象拷贝
p(&t)
p(t.A) //13
pt1 := t
pt1.A = 12
p(t.A) //13
pt2 := &t
pt2.A = 23
p(t.A) //23
//上面这个大概明白golang指针怎么回事了吧!
t2 := Test2{}
t2.T1()
t2.T2()
t3 := Test2{Test{A: 12}}
p(t3.Test.A)
p(t3.A)
t3.A = 14
p(t3.A)
p(t3.A)
}
golang struct
最新推荐文章于 2023-04-16 22:50:00 发布