a :=10var p1 *int//指针
p1 =&a //p1指向a的内存地址
fmt.Println(p1)
fmt.Println(*p1)
2、结构体
package main
import"fmt"funcmain(){var p1 Person
p1.address ="东莞市"
p1.name ="张飞"
p1.age =33
p1.sex ="男"
fmt.Println(p1.address)}//结构体type Person struct{
name string
age int
sex string
address string}//指针实现浅拷贝var p2 * Person
p2 =&p1
fmt.Println(p2)
fmt.Println(p2.address)
3、面向对象
package main
import"fmt"funcmain(){
f1 := Father{name:"张飞", age:33}//方法调用
f1.eat()
fmt.Println(f1.name)//继承
f2 := Son{Father: Father{name:"张飞", age:33}, sex:"男"}
fmt.Println(f2.name)}type Father struct{
name string
age int}type Son struct{
Father
sex string}//方法func(f Father)eat(){
fmt.Println(f.name)}
4、接口
package main
import"fmt"funcmain(){
m1 := Mouse{"小红"}
fmt.Println(m1.name)test(m1)}//接口type USB interface{start()end()}//实现类type Mouse struct{
name string}type FlashDisk struct{
name string}func(m Mouse)start(){
fmt.Println("鼠标开始")}func(m Mouse)end(){
fmt.Println("鼠标结束")}//调式方法functest(usb USB){
usb.start()}
5、接口嵌套
package main
import"fmt"funcmain(){var cat Cat = Cat{}
cat.test1()}type A interface{test1()}type B interface{test2()}type C interface{
A
B
test3()}type Cat struct{}func(c Cat)test1(){
fmt.Println("cat---------")}